Imagick - Преобразование PNG в JPG, прозрачный фон становится черным - PullRequest
3 голосов
/ 26 января 2012

И я хочу, чтобы мой фон стал белым. Я взглянул на другие вопросы, и ни один из ответов, похоже, не решил эту проблему.

Я использую Imagick версии 2.3, и вот что у меня есть:

$this->_object = new Imagick();
$this->_object->setResolution(300, 300);
$this->_object->readImage($fileRead);
$this->_object->setImageMatte(true);
$this->_object->setImageMatteColor("white");
$this->_object->setImageAlphaChannel(Imagick::ALPHACHANNEL_OPAQUE);

Я пробовал

setBackgroundColor, setImageBackgroundColor, composite over a white image

И, похоже, ничего из этого не работает. Есть предложения?

1 Ответ

0 голосов
/ 01 февраля 2012

Расширение jpg не поддерживает прозрачность фона, вам нужно использовать png.Для другого сайта, если у вас есть, например, одно изображение с фоном записи, вы можете установить этот цвет прозрачным с помощью этого кода:

    $route  = "MiOldJpgWriteBackground.jpg";
    $salida = 'MiNewTransparentFile.png';
    exec("convert $route $salida");
    exec("convert $salida -bordercolor white -border 1x1 \
         -alpha set -channel RGBA -fuzz 10% \
         -fill none -floodfill +0+0 white \
         -shave 1x1 $salida");
    exec("rm $route");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...