Qt 如何使用 QImage 设置指定的颜色为透明色?
Qt 如何使用 QImage 设置指定的颜色为透明色?
需求背景:使用华大身份证读卡器模块读取身份证信息,通过模块读取的图片为 *.BMP 格式,无透明色,故绘制到身份证上无法美观的显示。
通过查询身份证拍摄要求,得知不得穿白色的领子拍摄,采用白底背景。
通过工具得知图片底色颜色值 QColor(254,254,254,255)。
故只需遍历图片把颜色值等于图片底色的值设置为 QColor(254,254,254,0)。
void IDCard::Bmp2Png(QImage &bmp,QString &path)
{
    //BMP颜色格式转换成RGBA颜色格式
    bmp  = bmp.convertToFormat(QImage::Format_RGBA8888_Premultiplied,Qt::NoFormatConversion);
    int bmpWidth = bmp.width();
    int bmpHeight = bmp.height();
    //透明颜色
    QColor bmpBack(254,254,254);
    QColor bmpBackA(254,254,254,0);
    for(int i=0;i< bmpWidth;++i)
    {
        for(int j=0;j<bmpHeight;++j)
        {
            //如果身份证背景色等于 Color(254,254,254,255),则设置为透明色 Color(254,254,254,0)
            if(bmp.pixelColor(i,j)==bmpBack)
            {
                bmp.setPixelColor(i,j,bmpBackA);
            }
        }
    }
    //保存转换的图片
    bmp.save(path);
    return;
}
Qt 如何使用 QImage 设置指定的颜色为透明色?的更多相关文章
- 【Qt开发】QImage设置为8-bit灰度图
		项目中用到大量基础图像处理知识,其中灰度图的生成是很重要的一环. 先补充一些基础知识: -------------------------------------------------------- ... 
- 使用ECharts制作图形时,如何设置指定图形颜色?
		使用ECharts制作图形时,图形颜色是默认的颜色,有时需求需要指定图形颜色,这就需要自己去设置. 在option下的series属性中设置itemStyle,如下所示: itemStyle: { n ... 
- Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())
		在Qt中设置widget背景颜色或者图片方法很多种:重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等. 但是各种方法都有其注意事项,如果不注意则很容易 ... 
- Qt - QDialog,QWidget实现模态及非模态(模态Widget不能有父窗口,如果设置无边框就不能阻塞父窗口,但是可以强行设置指定Qt::Dialog,还可以setAttribute(Qt::WA_ShowModal),很多讲究)good
		在Qt中QDialog为“窗口”,而QWidget为“部件”,首先还是了解下<Qt 窗口与部件的概念>. 对于 QDialog 的模态及非模态是直接可以实现的,很多课本中都会提到,此处总结 ... 
- Android Material适配 为控件设置指定背景色和点击波纹效果
		Android Material适配 为控件设置指定背景色和点击波纹效果,有需要的朋友可以参考下. 大部分时候,我们都需要为控件设置指定背景色和点击效果 4.x以下可以使用selector,5.0以上 ... 
- 设置RichEdit相关颜色说明
		1.设置RichEdit客户区的背景颜色 要设置RichEdit的背景色,需要发送 EM_SETBKGNDCOLOR 消息给RichEdit控件,关于该消息的说明:wParam参数 为颜色选项,如果是 ... 
- Windows上C语言实现设置控制台的颜色
		这里设置只要调用system();这个函数就行了,参数是字符串,想要设置终端的颜色,按照以下格式可以设置: //数字表示前景色,字母表示背景色 //color 0=黑色 1蓝色 2 绿色 3湖蓝色 4 ... 
- Qt应用程序中设置字体
		Qt应用程序中设置字体 应用程序中经常需要设置字体,例如office软件或者是其他的编辑器软件等等.这里主要涉及到如下几个概念:字体,字号以及风格(例如:粗体,斜体,下划线等等).Qt里面也有对应的类 ... 
- CAD.NET二次开发 新建图层 删除图层 指定图层颜色以及线形等
		基于浩辰CAD 2019测试 功能实现 直接上代码: [CommandMethod("CreateAndAssignAlayer")] //新建图层 然后添加到图层表里 publi ... 
随机推荐
- .net Core学习笔记3  编辑列表并绑定下拉列
			本次主要实现列表的编辑及下拉列表的绑定 先看效果图: 主要用DropDownList绑定下拉列后端代码: 1:定义一个存下拉数据类 public class SelectItem { public s ... 
- java连接mysql以及增删改查操作
			java连接数据库的代码基本是固定的,步骤过程觉得繁琐些,代码记起来对我来说是闹挺.直接上代码: (温馨提醒:你的项目提前导入连接数据库的jar包才有的以下操作 ) class DBConnectio ... 
- eclipse-java开发实用快捷键
			Expand All:ctrl+小键盘* Collapse All:ctrl+shift+小键盘/ 
- text和submit框的border问题
			A1:在input框中,为type为text的输入框增加边框,它会在内容区域外额外增添,但是在submit框中,它会占用内容区块的一部分作为边框 <style type="text/c ... 
- Mysql基本命令二
			删除id>10的记录:delete from user where id>10; 设置user表的自增字段起始值为10:alter table user anto_increment=10 ... 
- 02-Go语言数据类型与变量
			Go基本类型 布尔型: bool - 长度: 1字节 - 取值范围: true,false - 注意事项: 不可以用数字代表true或false 整型: int/uint - 根据运行平台可能为32或 ... 
- 模型的元数据Meta  -- Django从入门到精通系列教程
			该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ... 
- C#使用Redis
			一,引入dll 1.ServiceStack.Common.dll 2.ServiceStack.Interfaces.dll 3.ServiceStack.Redis.dll 4.ServiceSt ... 
- FTP 安装配置
			FTP 安装配置: 一.基础操作 yum install -y ftp yum install -y vsftpd service iptables stop chkconfig iptables o ... 
- SSD写入放大问题[转]
			原文地址:http://blog.csdn.net/cywosp/article/details/29812433 之前在SSD(Solid State Drive)上设计并实现缓存系统用于存储数据块 ... 
