MFC 怎么把一张24位图直接保存位单色位图
时间: 2024-01-20 09:03:40 浏览: 123
位图信息头-C++ mfc编程
可以通过以下步骤将24位图转换为单色位图并保存:
1. 打开 MFC 应用程序并加载 24 位图
2. 创建一个位图对象并将其设为单色位图
3. 将 24 位图复制到单色位图中
4. 保存单色位图
下面是一个示例代码:
```cpp
// 打开 24 位图
CImage img;
img.Load(_T("24bit.bmp"));
// 创建单色位图
CBitmap bitmap;
bitmap.CreateBitmap(img.GetWidth(), img.GetHeight(), 1, 1, NULL);
// 将 24 位图复制到单色位图中
CDC dc;
dc.CreateCompatibleDC(NULL);
CBitmap* pOldBitmap = dc.SelectObject(&bitmap);
CImage monoImg;
monoImg.Create(img.GetWidth(), img.GetHeight(), 1, 0);
monoImg.BitBlt(dc.m_hDC, 0, 0, SRCCOPY);
dc.SelectObject(pOldBitmap);
// 保存单色位图
CFile file(_T("mono.bmp"), CFile::modeCreate | CFile::modeWrite);
CBitmap monoBitmap;
monoBitmap.Attach(bitmap.Detach());
monoBitmap.SaveBMP(&file);
file.Close();
```
这段代码将会把名为 "24bit.bmp" 的 24 位图转换为单色位图并保存为 "mono.bmp"。
阅读全文