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

2022-01-12 10:36:44 浏览数 (1)

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

示例代码:

代码语言:javascript复制
    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

0 人点赞