QImage, можно изменить фон изображения ресурса (png/jpg)

Могу ли я изменить фон QImage, созданного из файла ресурсов (png, jpg)?

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

Результатом моего испытания является все заполненное фоновым цветным изображением. Есть ли шанс, что я изменю прозрачный фон файла ресурсов png/jpg?


person Horst Walter    schedule 03.09.2014    source источник
comment
Разве вы не можете просто передать QImage::Format_RGB32 в ctor QImage?   -  person Garrappachc    schedule 04.09.2014
comment
Вы имеете в виду сделать прозрачность недействительной? Хорошая идея, но как я могу установить цвет фона, который хочу?   -  person Horst Walter    schedule 04.09.2014


Ответы (1)


Как я это сделал, улучшения приветствуются:

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);
}
person Horst Walter    schedule 17.09.2014