我的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