От прозрачного до белого в Imagick для PHP

У меня есть изображение в формате 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();

Проблема в том, что это всегда приводит к сбою скрипта.

19
задан fonso 11 February 2011 в 20:33
поделиться