绘图时QImage \ QPixmap失去alpha颜色

时间:2016-11-27 13:13:59

标签: qt png alpha qpainter qimage

我的PNG图片QImage::Format_ARGB32填充了颜色ARGB(0, 255, 255, 255)

当我将图像绘制到具有相同格式的另一图像时,alpha像素的颜色会丢失。所有ARGB(0, 255, 255, 255)像素都会转换为ARGB(0, 0, 0, 0)

以下代码丢失了alpha像素的颜色:

QImage sourceImage("image.png");
QImage destImage(sourceImage.width(), sourceImage.height(), sourceImage.format());
QPainter painter(&destImage);

painter.setCompositionMode(QPainter::CompositionMode_Source);
painter.drawImage(0, 0, sourceImage);
painter.end();

缩放图像也会失去alpha像素的颜色:

QImage destImage = sourceImage:scaled(sourceImage.width() / 2, sourceImage.height() / 2);

但是下面的代码保存像素颜色:

QImage sourceImage("image.png");
QImage destImage(sourceImage.width(), sourceImage.height(), sourceImage.format());
for(int x = 0; x < sourceImage.width(); x++)
{
    for(int y = 0; y < sourceImage.height(); y++)
    {
        destImage.setPixelColor(x, y, sourceImage.pixelColor(x, y));
    }
}

有没有人知道解决方法?
Qt 5.7,OSX

0 个答案:

没有答案