#include #include #define XSTART 180 #define YSTART 100 #define WIDTH 2048 #define HEIGHT 1216 #define CWIDTH 1600 #define CHEIGHT 700 void printargs(int argc, char * argv[]); void inputppm(char * filename, char *** red, char *** green, char *** blue); void outputppm(char * outfilename, char **red, char **green, char **blue); void outputcroppedppm(char * outfilename, char **red, char **green, char **blue); void main(int argc, char * argv[]) { char * infilename; FILE * infile; char ** red; char ** green; char ** blue; int i,j; printargs(argc, argv); if (argc < 2) { printf("Usage: gigo filename\n"); exit(0); } infilename = argv[1]; if ((infile = fopen(infilename, "rb")) == NULL) { printf("Couldn't find %s\n", infilename); exit(0); } printf("Mallocing red[].\n"); red = (char **) malloc (WIDTH * sizeof (char *)); for (i=0; i 1.2 * red[i][j] || blue[i][j] > 1.2 * green[i][j] ) { fprintf(outfile, "%c", 0); fprintf(outfile, "%c", 0); fprintf(outfile, "%c", 0); } else { fprintf(outfile, "%c", red[i][j]); fprintf(outfile, "%c", green[i][j]); fprintf(outfile, "%c", blue[i][j]); } } } fclose(outfile); } void printargs(int argc, char * argv[]) { int i; for (i=0; i