资源简介
实现过程:
A、写入文件头
B、写入信息头
C、写入图像RGB数据
(无调色板)
亲测可以使用
代码片段和文件信息
BOOL CSubView::SaveBitmap()
{
BITMAPINFOHEADER bih;
ConstructBih(render_widthrender_heightbih);
BITMAPFILEHEADER bhh;
ContructBhh(render_widthrender_heightbhh);
//24位真彩色,24位表示一个像素,3个字节表示一个像素
int widthStep = (render_width * 3 + 3) & ~3 ; //每行字节数是4的倍数
int DIBSize = widthStep * render_height ; //buffer的大小 (字节为单位)
TCHAR BMPFileName[1024]=“D:\\test.bmp“;
CFile file;
if(file.Open(BMPFileNameCFile::modeWrite | CFile::modeCreate))
{
file.Write((LPSTR)&bhhsizeof(BITMAPFILEHEADER));
file.Write((LPSTR)&bihsizeof(BITMAPINFOHEADER));
file.Write(render_bitmap_surfaceDIBSize);
//file.Write(render_bitmap_surfacerender_bitmap.header.biSizeImage);
file.Close();
}
return 0;
}
//构建BMP位图文件头
void CSubView::ContructBhh(int nWidthint nHeightBITMAPFILEHEADER& bhh) //add 2010-9-04
{
//24位真彩色,24位表示一个像素,3个字节表示一个像素
int widthStep = (render_width * 3 + 3) & ~3 ; //每行字节数是4的倍数
bhh
评论
共有 条评论