#include #include #define MAX 256 void readGray ( int A[][MAX], int *ht, int *wd, char *fname ) { FILE *fp; char tmp[100]; int lev, i, j; fp = (FILE *)fopen(fname,"r"); if (fp == NULL) { fprintf(stderr,"Error opening input file...\n"); exit(1); } fscanf(fp,"%s",tmp); fscanf(fp,"%d%d%d",wd,ht,&lev); for (i=0; i<*ht; ++i) for (j=0; j<*wd; ++j) fscanf(fp,"%d",&A[i][j]); fclose(fp); printf("%d x %d image read from \"%s\".\n", *wd, *ht, fname); } void readColor ( int R[][MAX], int G[][MAX], int B[][MAX], int *ht, int *wd, char *fname ) { FILE *fp; char tmp[100]; int lev, i, j; fp = (FILE *)fopen(fname,"r"); if (fp == NULL) { fprintf(stderr,"Error opening input file...\n"); exit(1); } fscanf(fp,"%s",tmp); fscanf(fp,"%d%d%d",wd,ht,&lev); for (i=0; i<*ht; ++i) for (j=0; j<*wd; ++j) fscanf(fp,"%d%d%d",&R[i][j], &G[i][j], &B[i][j]); fclose(fp); printf("%d x %d image read from \"%s\".\n", *wd, *ht, fname); } void writeGray ( int A[][MAX], int ht, int wd, char *fname ) { FILE *fp; int i, j; fp = (FILE *)fopen(fname,"w"); if (fp == NULL) { fprintf(stderr,"Error opening output file...\n"); exit(1); } fprintf(fp,"P2\n%d %d\n255\n",wd,ht); for (i=0; i=0) && (i_=0) && (j_