请问从RGB数据生成内存dc的最简单的方法是什么?
时间:2011-11-24
来源:互联网
我现在用的方法是这样
1 先根据我的rgb位图尺寸填充 BITMAPINFO
2 memdc.CreateCompatibleDC(hdc) 生成DC
3 hbmp=CreateDIBSection(....) 生成BITMAP, 并用 memdc.SelectObject(hbmp)
4 最后用 StretchDIBits 把rgb数组写入到这个memdc中去
5,我自己的一些处理
6,保存bmp
总觉得这个方法很繁琐,请问更合理的方式是什么?
谢谢..
作者: beanders 发布时间: 2011-11-24
作者: dizuo 发布时间: 2011-11-25
作者: smwhotjay 发布时间: 2011-11-25
我有一个24B的rgb位图数据,我想把它加载到DC,在上面画图后再保存。
我现在用的方法是这样
1 先根据我的rgb位图尺寸填充 BITMAPINFO
2 memdc.CreateCompatibleDC(hdc) 生成DC
3 hbmp=CreateDIBSection(....) 生成BITMAP, 并用 memdc.SelectObject(hbmp)
4 最后用 StretchD……
觉得你的方法合理~
作者: VisualEleven 发布时间: 2011-11-25
unsigned int * buf = (unsigned int *)你的数据;
CBitmap map;
map.SetBitmapBits(width * height * 4,buf);
CDC dc;
CClientDC pDC;
dc.CreateCompatibleDC(&pDC);
dc.SelectObject(&map);
作者: wawagua 发布时间: 2011-11-25
作者: wawagua 发布时间: 2011-11-25
我直接写bmp文件头 bmp信息头 rgb数据 完毕
我知道的也是这样子的。
作者: mjjackey 发布时间: 2011-11-25
再追加个问题
请问我如何从 CBitmap获得RGB指针呢?
我先生成一个位图 pBitmap->SetBitmapBits(24,NULL);
然后 pBitmap->CreateCompatibleBitmap(MEM_DC,1920,1080);
MEM_DC.SelectObject(pBitmap);
这时候我在MEM_DC上的绘图操作实际上就是在pBitmap上画图对吗?
我想保存成BMP,请问我如何获得这个rgb指针?
我现在的做法比较笨:1 另外再创建一个DC,然后用CreateDIBSection获得一个rgb指针 , 然后 StretchBlt给DC画图,最后保存rgb指针.
谢谢
作者: beanders 发布时间: 2011-11-26
热门阅读
-   office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具 office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具阅读:74 
-   如何安装mysql8.0 如何安装mysql8.0阅读:31 
-   Word快速设置标题样式步骤详解 Word快速设置标题样式步骤详解阅读:28 
-   20+道必知必会的Vue面试题(附答案解析) 20+道必知必会的Vue面试题(附答案解析)阅读:37 
-   HTML如何制作表单 HTML如何制作表单阅读:22 
-   百词斩可以改天数吗?当然可以,4个步骤轻松修改天数! 百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!阅读:31 
-   ET文件格式和XLS格式文件之间如何转化? ET文件格式和XLS格式文件之间如何转化?阅读:24 
-   react和vue的区别及优缺点是什么 react和vue的区别及优缺点是什么阅读:121 
-   支付宝人脸识别如何关闭? 支付宝人脸识别如何关闭?阅读:21 
-   腾讯微云怎么修改照片或视频备份路径? 腾讯微云怎么修改照片或视频备份路径?阅读:28 















