BMP图片反转(黑色变白色,白色变黑色)
来源:互联网 发布:电脑制图软件有哪些 编辑:程序博客网 时间:2024/05/16 01:02
参考:
http://www.myexception.cn/vc-mfc/124942.html
HBITMAP hBmp = (HBITMAP)LoadImage(NULL, csBmpFile, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
hBmp = BmpInversion(hBmp, pClientDC);
HBITMAP CBmpList::BmpInversion(HBITMAP hSrcBmp, CClientDC* pClientDC)
{
CBitmap btSRC;
btSRC.Attach(hSrcBmp);
CDC dcSrc;
CDC dcDest;
//分别创建对预显示位图的DC的兼容DC
dcSrc.CreateCompatibleDC(pClientDC);
dcDest.CreateCompatibleDC(pClientDC);
BITMAP bitmap;
btSRC.GetBitmap(&bitmap);
CBitmap btSingleColor;
//创建单色位图
btSingleColor.CreateBitmap(bitmap.bmWidth, bitmap.bmHeight, 1, 1, NULL);
//载入源位图
dcSrc.SelectObject(&btSRC);
//VC默认的背景色白色
//设置背景色,也就是源位图的透明色
dcSrc.SetBkColor(RGB(0,0,0));//如何才能知道一副图片的前景色和背景色…… by ralf
//载入单色位图
dcDest.SelectObject(&btSingleColor);
//这里DC之间的块数据拷贝就用到了开头提到的知识点,从彩色位图向单色位图转换,
//源位图的背景图拷到掩码DC中后变为白色,其他则为黑色
dcDest.BitBlt(0, 0, bitmap.bmWidth, bitmap.bmHeight, &dcSrc, 0, 0, SRCINVERT);
hSrcBmp = (HBITMAP)btSingleColor.Detach();
dcSrc.DeleteDC();
dcDest.DeleteDC();
btSRC.DeleteObject();
return hSrcBmp;
}
- BMP图片反转(黑色变白色,白色变黑色)
- 状态栏变白色,状态栏图标变黑色。
- MATLAB 保存图片变黑色
- 白色家电与黑色家电
- 图片的白色背景变透明
- java 图片如何让白色变透明
- JAVA图片处理之黑色/白色透明化
- 2015-12-3-判断图片的色调(黑色还是白色)
- Swift - 去处图片的白色、黑色背景(使UIImage背景透明)
- 按颜色分类:黑色和白色(Black & White)
- ListView /ScrollVIew 滑动出现阴影(白色或者黑色)
- Android Studio 主题如何黑色变为白色
- iOS - UIStatusBar 状态栏设置黑色+白色
- 黑白图像变白色部分
- 将白色背景图片变透明
- 将白色背景图片变透明
- Android Glide白色图片压缩变绿的问题解决
- 用StretchBlt()来设置图片时,图片背景变黑色。
- web开发学习笔记(4):js获取table的行数和表格中某一行某一列的内容
- hdu 5223 GCD
- DFS_HDU_5222
- c#第三次作业——Excel数据读取 及 HTML文件初步(目标三)
- 第一个只出现一次的字符
- BMP图片反转(黑色变白色,白色变黑色)
- Google推荐的命名规则——Android图片资源
- Java中字符串中子串的查找共有四种方法(indexof())
- ext 基本函数介绍
- java 字节流与字符流的区别
- 【Matlab学习笔记】图像的二值化(待续)
- 剑指offer 面试题40—数组中两个只出现一次的数字
- fedora 添加国内源
- iOS网络监测