VC怎样把一副自己画的图存成BMP格式
【打印文章】
int SaveBmp(HANDLE hData,LPSTR filename)
{
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER *lpbi=(BITMAPINFOHEADER*)hData;
bfh.bfType=0x4D42; //BM
bfh.bfSize=sizeof(bfh)+GlobalSize(hData);
bfh.bfReserved1=bfh.bfReserved2=0;
int colors=1<biBitCount;
if(colors>256) colors=0;
bfh.bfOffBits=sizeof(bfh)+lpbi->biSize+colors*sizeof(RGBQUAD);
HANDLE hFile=CreateFile(filename,GENERIC_WRITE
,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile)
{
DWORD write;
WriteFile(hFile,&bfh,sizeof(bfh),&write,NULL);
WriteFile(hFile,lpbi,GlobalSize(hData),&write,NULL);
int i=sizeof(hData);
CloseHandle(hFile);
return true;
}
return false;
}
{
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER *lpbi=(BITMAPINFOHEADER*)hData;
bfh.bfType=0x4D42; //BM
bfh.bfSize=sizeof(bfh)+GlobalSize(hData);
bfh.bfReserved1=bfh.bfReserved2=0;
int colors=1<biBitCount;
if(colors>256) colors=0;
bfh.bfOffBits=sizeof(bfh)+lpbi->biSize+colors*sizeof(RGBQUAD);
HANDLE hFile=CreateFile(filename,GENERIC_WRITE
,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile)
{
DWORD write;
WriteFile(hFile,&bfh,sizeof(bfh),&write,NULL);
WriteFile(hFile,lpbi,GlobalSize(hData),&write,NULL);
int i=sizeof(hData);
CloseHandle(hFile);
return true;
}
return false;
}
本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )
【编程爱好者论坛】