/* raw2pgm.c Turn raw image file to pgm image file */ #include #include #include "image.h" int main(int argc, char *argv[]) { int RowSize, ColSize; FILE *PgmFile; FILE *RawFile; char header[80]; /* parse command line */ if (argc!=5) { fprintf(stderr, "Invalid number of command line arguments!"); fprintf(stderr, "\nUsage: raw2pgm raw_file pgm_file x_size y_size\n"); exit(1); } else { if ( !(PgmFile=fopen(argv[2], "w")) || !(RawFile=fopen(argv[1], "rb")) ) { fprintf(stderr, "Can't open one of the files!\n"); exit(1); } if ( (RowSize=atoi(argv[3]))<0 || (ColSize=atoi(argv[4]))<0 ) { fprintf(stderr, "Invalid image dimensions!\n"); exit(1); } } /* write the header information */ write_header(PgmFile, RowSize, ColSize); while (!feof(RawFile)) fputc(fgetc(RawFile), PgmFile); fclose(RawFile); fclose(PgmFile); /* mission accomplished */ return (0); }