QImage,可以更改资源图像的背景(png/jpg)

QImage, possible to change background of resource image (png/jpg)

本文关键字:背景 png jpg 图像 资源 QImage      更新时间:2023-10-16

我可以更改从资源(png,jpg)文件创建的QImage的背景吗?

    static QPixmap changeBackground(const QString resource, Qt::GlobalColor color)
    {
        QImage i(resource); // load png/img
        i.fill(color);
        return QPixmap::fromImage(i);
    }

我的试验结果是一个充满了背景色的图像。我有没有可能更改png/jpg资源文件的透明背景?

我是如何做到的,欢迎改进:

QPixmap MyIconClass::changeBackground(const QString resource, Qt::GlobalColor backgroundColor)
{
    QImage resSource(resource);
    QImage destBackground(resSource.size(), QImage::Format_RGB32);
    destBackground.fill(backgroundColor);
    QPainter p(&destBackground);
    p.setCompositionMode(QPainter::CompositionMode_SourceAtop);
    p.drawImage(0, 0, resSource);
    return QPixmap::fromImage(destBackground);
}