zoukankan      html  css  js  c++  java
  • 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;
    }
    
  • 相关阅读:
    python 数据类型 变量 注释
    tornado 模版
    tornado 响应头 中断 状态码 工作流程
    tornado write render redirect IP
    tornado样板
    Celery实现异步任务
    Python pika简单实现RabbitMQ通信
    进程、线程与协程的比较
    使用 flask 实现 RESTful API
    阿里云服务器部署Tornado应用
  • 原文地址:https://www.cnblogs.com/cheungxiongwei/p/7603386.html
Copyright © 2011-2022 走看看