如何在没有 Qt 将透明颜色变为黑色的情况下将具有透明度的文件保存为 JPEG 文件?我知道 JPEG 不支持 alpha,黑色可能只是 alpha 的默认“0”值,但黑色是一种可怕的默认颜色。
看起来这应该是一个简单的操作,但是当保存为 JPEG 时,我尝试过的所有掩码和 alpha 函数都被忽略了。
例如:
image->load("someFile.png"); // Has transparent background or alpha channel
image->save("somefile.jpg", "JPG"); // Transparent color is black
我尝试在保存为 JPEG 之前用白色填充图像,在保存之前将图像转换为 ARGB32(使用 8 位 alpha 通道),甚至尝试过慢得离谱的东西,例如:
QImage image2 = image1->convertToFormat(QImage::Format_ARGB32);
image2.setAlphaChannel(image1->alphaChannel());
image2.save(fileURI, "JPG", this->jpgQuality; // Still black!
See: http://67.207.149.83/qt_black_transparent.png for a visual.