CImage 对话框初始化时候显示透明 PNG
来源:互联网 发布:经济结构优化 编辑:程序博客网 时间:2024/05/16 10:37
PNG图片的透明背景总是一片白色,后来才发现这其实是微软GDI+的设计问题,PNG图片是ARGB,使用GDI+载入图片的时候,GDI+会默认已经进行了预剩运算(PARGB),即每象素的实际值是已经和ALPHA值按比例相乘的结果,实际上它根本就没有做预乘,在使用透明图片的象素ALPHA通道的时候,CImage内部正是调用的AlphaBlend,没有预乘的图当作预乘的图片处理的结果就是这相当于一张和纯白背景进行了预剩,所以图象总是出现白色背景。
image.Load(".\\res\\264_ico.png"); //转换函数?加上后背景为白色的PNG就变成了透明的------------ //PNG图像自带Alpha通道,存储方式RGBA,代表了透明度,即pucColor[3] //当Alpha通道为0时,把RGB值都变成0 for(int i = 0; i < image.GetWidth(); i++) { for(int j = 0; j < image.GetHeight(); j++) { unsigned char* pucColor = reinterpret_cast<unsigned char *>(image.GetPixelAddress(i , j)); pucColor[0] = pucColor[0] * pucColor[3] / 255; pucColor[1] = pucColor[1] * pucColor[3] / 255; pucColor[2] = pucColor[2] * pucColor[3] / 255; } } //画一画 image.Draw(GetDlgItem(IDC_V_H264_LOGO)->GetDC()->m_hDC,rect);
阅读全文
0 0
- CImage 对话框初始化时候显示透明 PNG
- CImage 对话框初始化时候显示透明 PNG
- CImage 对话框初始化时候显示透明 PNG
- CImage显示透明PNG
- 使用CImage显示透明的PNG图片
- 利用CImage显示透明PNG图片
- 使用CImage显示透明的PNG图片
- 使用CImage显示透明的PNG图片
- 利用CImage显示透明PNG图片
- 关于CImage和AlphaBlend的透明PNG图片显示问题
- (转)使用CImage显示透明的PNG图片
- (转)CImage显示透明背景的PNG图片
- CImage 加载透明PNG图片
- 显示透明PNG图片
- VC++使用CImage PNG转BMP图片透明背景处理
- 显示透明的PNG图片
- OpenGL如何显示透明PNG
- 用CImage类来显示PNG、JPG等图片
- YunOS成过去 阿里新操作系统AliOS发力互联网汽车及IoT领域
- 微软CEO纳德拉:必应与苹果Siri分道扬镳后,将专注搜索市场
- Android Studio DDMS 无法查看/data目录
- SSM框架sql语句实现LIKE查询带特殊符号的语句
- 指针与数组的区别
- CImage 对话框初始化时候显示透明 PNG
- Ubuntu-install-keras-cuda-tensorflow/theano
- 机器学习-感知机笔记(题目举例和代码解答)
- 接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
- 八皇后问题
- java如何实现向word文档中插入柱状图,并更改颜色
- Windows10下虚拟机VMware10安装Centos7-网络配置篇
- 星河研究院:在自动驾驶领域到底是做青蛙还是做天鹅?(下)
- ABB收购B&R,重金补课“叫板”西门子