MFC 一张PNG图片转换成单色位图代码
时间: 2024-03-02 21:25:16 浏览: 21
以下是将一张PNG图片转换成单色位图的MFC代码:
```cpp
// 加载PNG图片
CImage image;
image.Load(L"image.png");
// 创建单色位图
CBitmap bitmap;
bitmap.CreateBitmap(image.GetWidth(), image.GetHeight(), 1, 1, NULL);
// 获取位图DC
CDC dc;
dc.CreateCompatibleDC(NULL);
CBitmap* pOldBitmap = dc.SelectObject(&bitmap);
// 将PNG图片绘制到位图DC中
image.Draw(dc.GetSafeHdc(), 0, 0);
// 将位图转换为单色位图
CDC memDC;
memDC.CreateCompatibleDC(NULL);
CBitmap monoBitmap;
monoBitmap.CreateBitmap(image.GetWidth(), image.GetHeight(), 1, 1, NULL);
CBitmap* pOldMonoBitmap = memDC.SelectObject(&monoBitmap);
memDC.BitBlt(0, 0, image.GetWidth(), image.GetHeight(), &dc, 0, 0, SRCCOPY);
// 清除位图DC和内存DC
dc.SelectObject(pOldBitmap);
memDC.SelectObject(pOldMonoBitmap);
dc.DeleteDC();
memDC.DeleteDC();
```
其中,`image.png`为待转换的PNG图片文件名,转换后的单色位图保存在`monoBitmap`中。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)