创建WINCE下16位格式位图实现快速BitBlt
2011-04-19 14:29
393 查看
在WINCE下,如果创建的位图与屏幕设备格式不一样,将会导致BitBlt函数极为缓慢,因此需要创建一幅16位色565格式位图,用此方法创建出的位图可以提供1ms的快速BitBlt绘制。当然,如果设备不是565颜色格式的,更改代码中的颜色掩码位bmiColors就可以了。
////////////////////////////////////////////////////////////////////////// /// @brief 创建一幅缓存图像。 /// @param[out] pHBitmap 生成的位图句柄。 /// @param[out] pData 生成的位图中的数据位置。 /// @param[in] hDC 目标DC句柄。 /// @param[in] width 位图宽度。 /// @param[in] height 位图高度。 /// @param[in] bitCount 每个像素占多少个bit。 /// @attention 创建的位图是无压缩格式的。 /// @author Loongee /// @date 2010/01/15 ////////////////////////////////////////////////////////////////////////// void CreateBufferBitmap(HBITMAP* pHBitmap, void** pData, HDC hDC, LONG width, LONG height, WORD bitCount) { BITMAPINFO& bmpInfo = *(BITMAPINFO*)new BYTE[sizeof(bmpInfo) + sizeof(RGBQUAD) * 3]; bmpInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); bmpInfo.bmiHeader.biWidth = width; bmpInfo.bmiHeader.biHeight = height; bmpInfo.bmiHeader.biPlanes = 1; bmpInfo.bmiHeader.biBitCount = bitCount; if (bitCount == 16) { bmpInfo.bmiHeader.biCompression = BI_BITFIELDS; *(DWORD *)(&bmpInfo.bmiColors[0]) = 0xF800; *(DWORD *)(&bmpInfo.bmiColors[1]) = 0x07E0; *(DWORD *)(&bmpInfo.bmiColors[2]) = 0x001F; } else { bmpInfo.bmiHeader.biCompression = BI_RGB; } bmpInfo.bmiHeader.biSizeImage = 0; bmpInfo.bmiHeader.biXPelsPerMeter = 1000; bmpInfo.bmiHeader.biYPelsPerMeter = 1000; bmpInfo.bmiHeader.biClrUsed = 0; bmpInfo.bmiHeader.biClrImportant = 0; *pHBitmap = CreateDIBSection(hDC, &bmpInfo, DIB_RGB_COLORS , pData, NULL, 0); delete[] (BYTE*)&bmpInfo; }
相关文章推荐
- 创建WINCE下16位格式位图实现快速BitBlt
- 创建WINCE下16位格式位图实现快速BitBlt
- 【MFC动态创建按钮,并在按钮上实现位图的切换显示】
- 在MSCRM3.0的快速创建窗口写脚本实现特效
- 位图文件(BMP)格式分析以及程序实现
- OpenJWeb快速开发平台自动创建基于事务的业务逻辑接口和实现类
- 毕业设计同学们的福利(将word表格导入PowerDesigner中实现快速创建PDM)
- json学习初体验--使用第三方的jar包实现bean、List、map创建json格式
- 创建FilenameFilter接口匿名内部类,实现过滤并删除指定格式文件
- QeePHP 快速入门——实现用户功能之创建视图!
- 位图文件(BMP)格式以及Linux下C程序实现
- 创建掩码位图来实现透明绘图
- OpenJWeb快速开发平台自动创建基于事务的业务逻辑接口和实现类
- 位图文件(BMP)格式分析以及程序实现[转载]
- 16位位图格式及对16位位图的一点个人总结
- 快速创建SSH信任实现无密码登录
- 使用Perl创建指定编码格式(如utf-8)文件的实现代码
- 假导出Excel功能实现,按CSV格式快速导出功能代码参考(追求代码追求简洁复用)浙江杭州
- swift 快速奔跑的兔几 本节的内容是:SceneKit 第二说 实现动画&创建文本几何体
- 位图文件(BMP)格式分析以及程序实现