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_58_装饰器1
    python_57_高阶函数
    python_56_递归
    python_55_局部和全局变量
    python_54_函数调用函数
    python_53_函数补充
    python_52_函数返回值2
    mysql 使用 GROUP BY 时报错 ERROR 1055 (42000)
    sql之left join、right join、inner join的区别
    C++ 函数的重载和参数默认值
  • 原文地址:https://www.cnblogs.com/cheungxiongwei/p/7603386.html
Copyright © 2011-2022 走看看