У меня есть изображение в формате PNG с прозрачным фоном, и я хочу преобразовать его в изображение в формате jpg с белым фоном.
Код в основном такой:
$image = new Imagick('transparent.png');
$image->writeImage('opaque.jpg');
Но это создает черный фон jpg. Я боролся с худшей документацией, когда-либо пытаясь найти способ преобразовать прозрачный в белый, но безрезультатно.
Edit : Что ж, я попробовал идею Марка Б. и вроде как заставил ее работать.
$image = new Imagick('transparent.png');
$white = new Imagick();
$white->newImage($image->getImageWidth(), $image->getImageHeight(), "white");
$white->compositeimage($image, Imagick::COMPOSITE_OVER, 0, 0);
$white->writeImage('opaque.jpg');
$image->destroy();
$white->destroy();
Проблема в том, что это всегда приводит к сбою скрипта.