/* xcl2tga.c reads an '.xcl' file and makes a '.tga' file xcl2tga name */ #include #include #define NUM_TYPE 25 #define NUM_SIZE 25 #define NUM_PLACE 3 #define NUM_PSIZE 3 #define NUM_FILL 5 #define MAX_COLORS 16 #define STR_LEN 100 #define ROW 480 #define COL 640 unsigned char Buffer[COL],OutBuff[COL][4]; int Hdr[9]={0,2,0,0,0,0,COL,ROW,32}; struct image_name { char name[100]; float maxlat,minlat,maxlon,minlon; float max_pix,min_pix,a[6],b[6]; int num_a,num_b,row,col; }; struct line_name { char filename[54]; float max_pix,min_pix; int color; }; struct place_name { char *name,*filename; float max_pix,min_pix; int color; }; struct Color { unsigned char r, g, b; }; struct col { int Plot; int Plot_At; int Num_Plot; int Msng; float Min_Pix; int White,Num_Color; int Comp_Color[256]; int screen_xs,screen_ys; int Num_Type,Out; float Pixsize,Clat,Clon,Space; int Mback,Text,High,Back,Grat; int GratOn; int LatLon,Black; char Color_Name[MAX_COLORS][30]; int Color_Val[MAX_COLORS][3]; int Type; int Ns[NUM_TYPE]; int Mm[NUM_TYPE]; int Pp[NUM_PLACE]; char Group_Name[NUM_TYPE][30]; struct line_name ColFile[NUM_TYPE][NUM_SIZE]; struct place_name PlaceFile[NUM_PLACE][NUM_PSIZE]; struct Color lut[256]; int assignment[256]; }M; main(argc,argv) int argc; char *argv[]; { int i,j,k,c; char string[100]; FILE *fpin,*fpout; int val; char cval; long offset,end_offset,lcol=COL,lrow=ROW,li; sprintf(string,"%s.xcl",argv[1]); fpin=fopen(string,"rb"); if(!fpin) { printf("could not open '%s'\n",string); exit(0); } sprintf(string,"%s.tga",argv[1]); fpout=fopen(string,"wb"); fwrite((char *)Hdr,sizeof(int),9,fpout); fread((char *)&M,sizeof(struct col),1,fpin); end_offset=lcol*lrow; end_offset+=sizeof(struct col); for(i=0;i