Мы используем CMS со встроенным WideImage, и у нас нет возможности это изменить, однако мы столкнулись с ситуацией, когда нам нужно производить изображения размером 300×300.
Однако изображения, которые загружаются с разрешением примерно 100×100 в формате jpg и png с различными уровнями прозрачности.
Я пытаюсь создать холст размером 300×300 и поместить в него изображение размером 100×100 — однако я хочу, чтобы холст оставался прозрачным, а изображение — сверху, чтобы сохранить его прозрачность.
у меня есть
$image = WideImage::loadFromFile( $this->local_path );
$canvas = WideImage::createTrueColorImage(300, 300);
$canvas_bg = $canvas->allocateColor(255, 255, 255);
$canvas->fill(0, 0, $canvas_bg);
$resized_image = $canvas->merge($image);
Однако это, очевидно, просто добавляет белый фон к холсту, я не могу понять из их документации, как сделать его прозрачным.
Спасибо
Как насчет:
$image = WideImage::loadFromFile($this->local_path);
$resized_image = $image->resizeCanvas(300, 300, 0, 0);
Вы можете указать X и Y расположение изображения на новом холсте, а также его ширину и высоту. $image->resizeCanvas(300, 300, "center", "center")
работает довольно хорошо.
Других решений пока нет …