双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

如何创建24位色的Bitmap然后保存到磁盘上面?

HashCodeWithJava HashCodeWithJava 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
保存bitmap的代码都没有什么问题.
问题是我创建的Bitmap,然后用SetPixel在上面写点后,居然只有两种颜色(白与黑)

这是我的代码,大家帮我看看吧.

CDC memDC;
CBitmap *pBitmap = new CBitmap();
memDC.CreateCompatibleDC(NULL);
pBitmap->CreateCompatibleBitmap(&memDC,Width,1);
CBitmap *pOldBitmap = memDC.SelectObject(pBitmap);
for(int i=0;i<Width;i++)
{
memDC.SetPixel(i,0,RGB(g_Buffer[3*i],g_Buffer[3*i+1],g_Buffer[3*i+2]));
}
memDC.SelectObject(pOldBitmap);

谢谢指教?

...全文

相关推荐

bmp封装类源码

**创建BMP**:允许开发者指定图像尺寸、颜色深度(如24位色),并初始化一个空的BMP文件。这可能通过定义一个结构体来存储BMP头部信息,然后分配内存来保存像素数据。2.

mjpegzelong

数字图像处理 DIB的读取与显示VC源代码

本主题将深入探讨如何在VC++环境中读取和显示DIB(Device Independent Bitmap)图像,以及如何进行保存。

zhengyimai

image_process

**创建新的BMP图像**:根据旋转后的图像尺寸创建一个新的BMP文件结构,并将转换后的像素数据写入。6. **保存图像**:最后,将新BMP文件结构写入磁盘,完成图像的旋转和保存。

eddy_feng

vc++中如何将客户区存为bmp(源码)

`CreateDIBSection`创建了一个与系统无关的位图,然后`WriteFile`将其写入磁盘。

aaaabing

C++实战:从零实现BMP文件读写,掌握二进制文件处理与内存对齐

文件I/O和内存管理是C++编程的核心基础,理解数据在磁盘与内存间的表示与转换是底层开发的关键。二进制文件处理涉及字节流操作、结构体映射和内存对齐等原理,这些技术是构建图像处理、音视频编解码等高性能应用的基础。通过解析BMP这种结构清晰的位图格式,可以直观学习文件头解析、像素数据存储与内存布局,并实践C++中的文件流、指针和数据结构等知识。本文以BMP文件读写为具体场景,深入探讨了内存对齐问题及解决方案,并展示了如何通过C++结构体精确映射文件格式,为后续学习更复杂的图像处理库如OpenCV打下坚实基础。

weixin_33871366
评论 5
收藏 已收藏
分享
返回顶部