如何创建24位色的Bitmap然后保存到磁盘上面?
保存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);
谢谢指教?
问题是我创建的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.
数字图像处理 DIB的读取与显示VC源代码
本主题将深入探讨如何在VC++环境中读取和显示DIB(Device Independent Bitmap)图像,以及如何进行保存。
image_process
**创建新的BMP图像**:根据旋转后的图像尺寸创建一个新的BMP文件结构,并将转换后的像素数据写入。6. **保存图像**:最后,将新BMP文件结构写入磁盘,完成图像的旋转和保存。
vc++中如何将客户区存为bmp(源码)
`CreateDIBSection`创建了一个与系统无关的位图,然后`WriteFile`将其写入磁盘。
C++实战:从零实现BMP文件读写,掌握二进制文件处理与内存对齐
文件I/O和内存管理是C++编程的核心基础,理解数据在磁盘与内存间的表示与转换是底层开发的关键。二进制文件处理涉及字节流操作、结构体映射和内存对齐等原理,这些技术是构建图像处理、音视频编解码等高性能应用的基础。通过解析BMP这种结构清晰的位图格式,可以直观学习文件头解析、像素数据存储与内存布局,并实践C++中的文件流、指针和数据结构等知识。本文以BMP文件读写为具体场景,深入探讨了内存对齐问题及解决方案,并展示了如何通过C++结构体精确映射文件格式,为后续学习更复杂的图像处理库如OpenCV打下坚实基础。


图形处理/算法

