QT 5 QImage alpha值未更新

时间:2015-04-04 22:58:01

标签: qt5 alpha-transparency qimage

我想更改图像上所有黑色像素的alpha值,然后用这个来解决一些麻烦。那里的解决方案对我不起作用。我加载一个jpg然后使用QImage :: Format_ARGB32

转换图像
qDebug() << "OUT IMAGE FORMAT HAS ALPHA CHANNEL " <<  outImage.hasAlphaChannel();

以上显示为真。然后我尝试:

for (int y = 0; y < outImage.height(); y++) {
                for (int x = 0; x < outImage.width(); x++) {
                    QColor c = outImage.pixel(x, y);
                    outImage.setPixel(x,y, (uint) qRgba((int) c.red(), (int) c.green(), (int) c.blue(), 0)) ;
                }
}
mainIm->setPixmap(QPixmap::fromImage(outImage));

以上没有任何反应。如果我使用:

outImage.setPixel(x,y, (uint) qRgba(255,255,255,255)); 

我看到一个完美的纯白色方块取代了图像。正如所料。

如果我使用:

outImage.setPixel(x,y, (uint) qRgba(255,255,255,100));

我看到原始图像的透明白色方块为不透明度100;

如果我使用:

outImage.setPixel(x,y, (uint) qRgba(0, 0, 0, 0)) ;

什么都没发生。

我已经根据SO和QT论坛上的解决方案尝试了很多变化,我现在很痛,所以我需要寻求帮助:-(我期望与scanline结合使用,但不太重要尊重速度。

所有帮助表示赞赏。

感谢。

0 个答案:

没有答案