Вопрос

У меня возникли проблемы с созданием изображения с расширением Imagick PHP. Все работает нормально, за исключением моего следующего «монтажа» имеет белый фон и, следовательно, я не могу наполнить его на вершине чего-то другого. Как я могу генерировать монтаж с прозрачным фоном?

       $Montage = $Icons->montageImage(new imagickdraw(), "3x2+0+0", "34x34+3+3", imagick::MONTAGEMODE_UNFRAME, "0x0+0+0");
      $Canvas->compositeImage($Montage, $Montage->getImageCompose(), 5, 5);

Спасибо!!

Это было полезно?

Решение

У меня была такая же проблема и обнаружила, что Magickwand C API, который Powers Imagick) не поддерживает вариант для монтажа.

Я оказался мониторией его вручную, как это:

// Add them to an array of Imagick objects, instead of using addImage().
$images = new Array();

// Make a transparent canvas.
$target = new Imagick();
$target->newImage($width, $height * count(images), 'none');

$i = 0;
foreach ($images as $image) {
    $target->compositeImage($image, imagick::COMPOSITE_COPY, 0, $height * $i++);
}

Другие советы

Я знаю, что это старый вопрос, но я нашел другой способ сделать это, используя функцию MontageImage Imagick. После того, как вы создадите объект Imagick, вы должны объявить фоном как прозрачный так:

$Icons->setBackgroundColor( new ImagickPixel('transparent') );

Как только это установлено, вы можете запустить объект через MontageImage, который создаст монтугераж с прозрачным фоном:

$Montage = $Icons->montageImage(new imagickdraw(), "3x2+0+0", "34x34+3+3", imagick::MONTAGEMODE_UNFRAME, "0x0+0+0");

Затем вы можете добавить новый монтажный образе для вашего составного изображения, чтобы использовать предварительно определенные томальные композитные константы Composite_Atop или желаемые постоянные (ы), как это:

$Canvas->compositeImage($Montage, imagick::COMPOSITE_ATOP, 5, 5);

Просто бегал по этому вопросу и решил опубликовать другое решение, если кто-то другой хочет сделать другой способ сделать это без ручного цикла.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top