Как сохранить файл с прозрачностью в файл JPEG без Qt, сделав прозрачный цвет черным?
Я знаю, что JPEG не поддерживает альфа, и черный цвет - это просто значение по умолчанию «0» для альфы, но черный - ужасный цвет по умолчанию.
Кажется, что это должна быть простая операция, но все маски и альфа-функции, которые я пробовал, игнорируются при сохранении в формате JPEG.
Например:
image->load("someFile.png"); // Has transparent background or alpha channel
image->save("somefile.jpg", "JPG"); // Transparent color is black
Я пытался заполнить изображение белым перед сохранением в формате JPEG, преобразовать изображение в ARGB32 (с 8-битным альфа-каналом) перед сохранением и даже попробовал смехотворно медленные вещи, такие как:
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.