FILE *fpo=fopen(strReadFilePath,"rb");
FILE *fpw=fopen(strSaveFilePath,"wb+");
int step,offset,i,j;
unsigned char PixVal;
if(fpo==NULL || fpw==NULL)
{
MessageBox("SaveFile:open failed");
return FALSE;
}
BITMAPFILEHEADER filehead; //全局变量文件头
BITMAPINFOHEADER infohead; //全局变量信息头
fread(&filehead,sizeof(filehead),1,fpo);
fread(&infohead,sizeof(infohead),1,fpo);
fwrite(&filehead,sizeof(filehead),1,fpw);
fwrite(&infohead,sizeof(infohead),1,fpw);
RGBQUAD wRggList[256];
fread(&wRggList[0],sizeof(RGBQUAD),256,fpo); //颜色表
fwrite(&wRggList[0],sizeof(RGBQUAD),256,fpw);
unsigned char *wBmpBuff;
wBmpBuff = (unsigned char*)malloc(sizeof(unsigned char)*nBmpWidth*nBmpHeight);
step=nBmpWidth*1;
offset = (1*biWidth)%4;
if (offset != 0)
offset = 4 - offset;
for (i=0; i<nBmpHeight; i++)
{
for (j=0; j<nBmpWidth; j++)
{
fread(&PixVal, sizeof(unsigned char), 1, fpo);
fwrite(&PixVal, sizeof(unsigned char), 1, fpw);
wBmpBuff[(biHeight-1-i)*step+j] = PixVal;
}
if (offset != 0)
for (j=0; j<offset; j++)
{
fread(&PixVal, sizeof(unsigned char), 1, fpo);
fwrite(&PixVal, sizeof(unsigned char), 1, fpw);
}
}
fclose(fpo);
fclose(fpw);
free(wBmpBuff);
return TRUE;
读取bmp文件然后在重新保存为一新的bmp文件
最新推荐文章于 2018-11-06 15:05:47 发布