QT软件开发: 访问QImage每个像素点填充指定颜色

Posted DS小龙哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT软件开发: 访问QImage每个像素点填充指定颜色相关的知识,希望对你有一定的参考价值。

需求:  需要将QImage加载的图片里指定的颜色值替换成另一种指定的颜色。

示例代码:

    QImage image;
    QString filename=QFileDialog::getOpenFileName(this,"选择打开的文件","C:/",tr("*.bmp *.jpg *.png"));
    //filename==选择文件的绝对路径

    //加载图片
    image.load(filename);
    int w,h;
    //得到图片的宽高
    w=image.width();
    h=image.height();
    //遍历每个像素点
    for(int i=0;i<h;i++)
    {
        for(int j=0;j<w;j++)
        {
             QRgb rgb=image.pixel(j,i);
             if(rgb==0)  //如果是透明色(全透明的颜色). 就填充成黑色
             {
                 image.setPixel(j,i,0xFF000000);
             }
        }
    }

    //保存为新图片
    image.save("D:/linux-share-dir/test/123.png");

以上是关于QT软件开发: 访问QImage每个像素点填充指定颜色的主要内容,如果未能解决你的问题,请参考以下文章

Qt 之 QImage

Qt QImage 像素操作问题

QT软件开发: 使用QImage创建一张空图片

QImage在具有透明度的PNG中设置alpha

旋转QImage时如何用透明背景填充空白?

Qt如何将文字变成图片?