2014-09-03 76 views
0

我可以更改從資源(png,jpg)文件創建的QImage的背景嗎?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資源文件透明背景的機會?

+1

你就不能傳遞的QImage :: Format_RGB32到的QImage的構造函數? – Garrappachc 2014-09-03 22:18:17

+0

你的意思是渲染透明度無效?好主意,但我怎麼能設置我想要的背景顏色? – 2014-09-03 23:50:57

回答

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); 
}