保存位图?
为什么我下面的代码保存的位图漆黑一片?
void CBitmapDlg::OnBtnBitmap()
{
// TODO: Add your control notification handler code here
CClientDC dc( this );
CDC dcMem;
CRect rect;
GetClientRect( &rect );
// 位图文件头
BITMAPFILEHEADER bmfh;
// 位图信息头
BITMAPINFO bmih;
BYTE *pBytes;
bmih.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
bmih.bmiHeader.biWidth = rect.Width();
bmih.bmiHeader.biHeight = rect.Height();
bmih.bmiHeader.biPlanes = 1;
bmih.bmiHeader.biBitCount = 16;
bmih.bmiHeader.biCompression = BI_RGB;
bmih.bmiHeader.biSizeImage = 0;
bmih.bmiHeader.biXPelsPerMeter = 0;
bmih.bmiHeader.biYPelsPerMeter = 0;
bmih.bmiHeader.biClrUsed = 0;
bmih.bmiHeader.biClrImportant = NULL;
bmfh.bfType = 0x4d42;
bmfh.bfSize = ( DWORD )( sizeof( BITMAPFILEHEADER ) + bmih.bmiHeader.biSize + bmih.bmiHeader.biClrUsed * sizeof( RGBQUAD ) + bmih.bmiHeader.biSizeImage);
bmfh.bfReserved1 = 0;
bmfh.bfReserved2 = 0;
bmfh.bfOffBits = ( DWORD )( sizeof( BITMAPFILEHEADER ) + bmih.bmiHeader.biSize + bmih.bmiHeader.biClrUsed * sizeof( RGBQUAD ) );
dcMem.CreateCompatibleDC( &dc );
dcMem.SetBkMode( TRANSPARENT );
dcMem.MoveTo( 0, 0 );
dcMem.LineTo( 100, 100 );
CreateDIBSection( dcMem.m_hDC, &bmih, DIB_PAL_COLORS, ( void** )&pBytes, NULL, 0 );
CFile file;
if( file.Open( "c:\\Test.bmp", CFile::modeWrite | CFile::modeCreate ) )
{
file.Write( &bmfh, sizeof( BITMAPFILEHEADER ) );
file.Write( &bmih, bmih.bmiHeader.biSize + bmih.bmiHeader.biClrUsed * sizeof( RGBQUAD ) + bmih.bmiHeader.biSizeImage );
file.Write( pBytes, rect.Width() * rect.Height() * 16 / 8 );
file.Close();
}
dcMem.DeleteDC();
}
...全文
相关推荐
将DataGridView转换为位图
本文介绍了一种简单的方法,可以将DataGridView控件转换为位图。
UIView 保存为图片
1、将UIView 保存为图片,按照给定的scale 2、stackoverflow参照 3、保存的图片为依据scale,亲测
查找包含在另一个位图中的位图
一种查找包含在较大位图中的较小位图的方法。
excel表格里的图片如何保存.doc
excel表格里的图片如何保存.doc
bitmap-printer:它去了brrrrr
位图打印机 “位图打印机变坏了” 这是做什么的? 该系统模块捕获捕获按钮事件,而不是保存压缩的(jpeg)图像,而是将未压缩的RGB位图存储在sd卡上。 为什么需要补丁? 我使用的IPC调用是caps:sc 1201-1203,用于检查调试模式的标志。 该补丁使函数调用始终返回true。 适用于HOS版本3.0.0-11.0.1(12.12.2020)。 随附的补丁程序: vi版本 补丁名称(内部版本号+ .ips) 经过测试 3.0.0.410 C41FC90700B2E371A88EA96D8E688E9AC954E40F.ips 是的 3.0.1.50 CDD21E75CDEC621583FAE6A09B7E64A4789BCD37.ips 是的 4.0.0.200 FC5A4D49AA96C39EFEECECAAB3A4338C89A0151F.ips


界面
