【正文】
biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant;}BITMAPINFOHEADER;typedef struct tagRGBQUAD{//rgbq BYTE rgbBlue;BYTE rgbGreen;BYTE rgbRed;BYTE rgbReserved;}RGBQUAD;typedef struct tagBITMAPINFO{BITMAPINFOHEADER bmiHeader;RGBQUAD bmiColors[1];}BITMAPINFO;endif//BMP_H_3_INCLUDEDinclude include include include include include includeBITMAPFILEHEADER bmfh;BITMAPINFOHEADER bmih;BYTE*imgData;int N;void readData();void HistTrans();int ReadFileHeader(BITMAPFILEHEADER*);int ReadInfoHeader(BITMAPINFOHEADER*);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。bmfh);if(i==0){printf(Read file header successful!\n);}k=ReadInfoHeader(amp。amp。amp。bmfhbfType,sizeof(WORD),1,dataFile)!=1){printf(Can not read bfType in the file header.\n);fclose(dataFile);return1;}if(fread(amp。bmfhbfReserved1,sizeof(WORD),1,dataFile)!=1){printf(Can not read bfReserved1 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。bmihbiWidth,sizeof(LONG),1,dataFile)!=1){print