VC++6.0 用C语言怎么办pgm图像

VC++6.0 用C语言怎么处理pgm图像
VC++6.0 用C语言输出一个像素为500*500的图像,灰度为个g(i,j)=100。
老师给了一个头文件如下:
mypgm.h
#define MAX_IMAGESIZE  1024
#define MAX_BRIGHTNESS  255
#define GRAYLEVEL       256 /* 灰度级 */
#define MAX_FILENAME    256 /* 最大文件名 */
#define MAX_BUFFERSIZE  256 /* 最大缓存 */
unsigned char image1[MAX_IMAGESIZE][MAX_IMAGESIZE],
              image2[MAX_IMAGESIZE][MAX_IMAGESIZE];
int x_size1, y_size1, 
    x_size2, y_size2; 
void load_image_data( ); 
void save_image_data( ); 
void load_image_data( )
{
    char file_name[MAX_FILENAME]; 
    char buffer[MAX_BUFFERSIZE];  
    FILE *fp; 
    int max_gray; 
    int x, y; 
    printf("-----------------------------------------------------\n");
    printf("  儌僲僋儘奒挷夋憸擖椡儖乕僠儞\n");
    printf("-----------------------------------------------------\n");
    printf("僼傽僀儖宍幃偼 pgm, 僶僀僫儕宍幃偲偟傑偡丏\n");
    printf("擖椡僼傽僀儖柤 (*.pgm) : ");
    scanf("%s",file_name);
    fp = fopen( file_name, "rb" );/*读写打开一个二进制文件,只允许读写数据*/
    if ( NULL == fp ){
        printf("偦偺柤慜偺僼傽僀儖偼懚嵼偟傑偣傫丏\n");
        exit(1);
/*exit()是用来正常结束进程的,exit(0)程序结束时返回0给系统,exit(1)程序结束时返回1给系统,
  exit(n)程序结束时返回n给系统,这样系统就知道程序是怎么结束的~是出错结束的呢 还是正常结束的呢,一看返回值就知道了*/
    }
    /* fgets() 函数的功能是从fp所指文件中读入MAX_BUFFERSIZE-1个字符放入buffer为起始地址的空间内;
如果在未读满MAX_BUFFERSIZE-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),
则结束本次读操作,读入的字符串中最后包含读到的换行符 */
    fgets( buffer, MAX_BUFFERSIZE, fp );
    if ( buffer[0] != 'P' || buffer[1] != '5' ){
        printf("僼傽僀儖偺僼僅乕儅僢僩偑 P5 偲偼堎側傝傑偡丏\n");
        exit(1);
    }
    x_size1 = 0;
    y_size1 = 0;
    while ( x_size1 == 0 || y_size1 == 0 ){
        fgets( buffer, MAX_BUFFERSIZE, fp );
        if ( buffer[0] != '#' ){
            sscanf( buffer, "%d %d", &x_size1, &y_size1 );
        }
    }
   
    max_gray = 0;
    while ( max_gray == 0 ){
        fgets( buffer, MAX_BUFFERSIZE, fp );
        if ( buffer[0] != '#' ){
            sscanf( buffer, "%d", &max_gray );
        }
    }
 
    printf("墶偺夋慺悢 = %d, 廲偺夋慺悢 = %d\n", x_size1, y_size1 );
    printf("嵟戝奒挷抣 = %d\n",max_gray);
    if ( x_size1 > MAX_IMAGESIZE || y_size1 > MAX_IMAGESIZE ){
        printf("憐掕抣 %d x %d 傪挻偊偰偄傑偡丏\n", 
            MAX_IMAGESIZE, MAX_IMAGESIZE);
        printf("傕偆彮偟彫偝側夋憸傪巊偭偰壓偝偄丏\n");
        exit(1);
    }
    if ( max_gray != MAX_BRIGHTNESS ){
        printf("嵟戝奒挷抣偑晄揔愗偱偡丏\n");
        exit(1);
    }
 
    for ( y = 0; y < y_size1; y ++ ){
        for ( x = 0; x < x_size1; x ++ ){
            image1[y][x] = (unsigned char)fgetc( fp );
        }
    }
    printf("僨乕僞偼惓偟偔撉傒崬傑傟傑偟偨丏\n");
    printf("-----------------------------------------------------\n");
    fclose(fp);
}

void save_image_data()
{
    char file_name[MAX_FILENAME]; 
    FILE *fp; 
    int x, y; 
    printf("-----------------------------------------------------\n");