【正文】
ADER*);int CreatePalette(RGBQUAD);int ReadPixelData(BYTE*);LONG GetLineBytes(int,int);int SaveAsImage(char*);int main(){char saveasfilepath[256];int i;DWORD dwLineBytes;readData();dwLineBytes=GetLineBytes(,);N=(int)dwLineBytes*;HistTrans();printf(Save as another path(://)\n);scanf(%s,saveasfilepath);i=SaveAsImage(saveasfilepath);if(i==1){printf(Error:failed to save the image.\n);}return 0;}void readData(){int i,k,h;DWORD dwLineBytes;i=ReadFileHeader(amp。amp。bmfhbfType,sizeof(WORD),1,dataFile)!=1){printf(Can not read bfType in the file header.\n);fclose(dataFile);return1;}if(fread(amp。bmfhbfOffBits,sizeof(DWORD),1,dataFile)!=1){printf(Can not read bfOffBits in the file header.\n);fclose(dataFile);return1;}fclose(dataFile);return 0;}int ReadInfoHeader(BITMAPINFOHEADER*bmih){FILE*dataFile;dataFile=fopen(,r);fseek(dataFile,14,SEEK_SET);if(fread(amp。bmihbiPlanes,sizeof(WORD),1,dataFile)!=1){printf(Can not read biPlanes in the info header.\n);fclose(dataFile);return1;}if(fread(amp。bmihbiXPelsPerMeter,sizeof(LONG),1,dataFile)!=1){printf(Can not read biXPelsPerMeter in the info header.\n);fclose(dataFile);return1;}if(fread(amp。,sizeof(WORD),1,dataFile)!=1){printf(Can not write bfType in the file header.\n);fclose(dataFile);return1;}if(fwrite(amp。,sizeof(DWORD),1,dataFile)!=1){printf(Can not write bfOffBits in the file header.\n);fclose(dataFile);return1;}if(fwrite(amp。,sizeof(WORD),1,dataFile)!=1){printf(Can not write biPlanes in the info header.\n);fclose(dataFile);return1;}if(fwrite(amp。,sizeof(LONG),1,dataFile)!=1){printf(Can not write biXPelsPerMeter in the info header.\n);fclose(dataFile);return1;}if(fwrite(a