2016-05-26 10 views
1

Мы используем CMS с WideImage, встроенный и не имеющий возможности изменить это, однако мы столкнулись с ситуацией, когда нам нужно создавать изображения размером 300x300.WideImage - Холст с прозрачным фоном

Однако изображения, которые загружаются примерно в 100x100 в формате jpg и png с различными уровнями прозрачности.

Я пытаюсь создать холст 300x300 и разместить изображение 100x100 внутри него - однако я хочу, чтобы и холст оставался прозрачным, и изображение, размещенное сверху, чтобы сохранить его прозрачность.

У меня

$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); 

Однако это, очевидно, только добавляет белый фон на холст, я не могу понять из их документации, как сделать его прозрачным.

Благодаря

ответ

0

Как насчет:

$image = WideImage::loadFromFile($this->local_path); 
$resized_image = $image->resizeCanvas(300, 300, 0, 0); 

Вы можете указать X и Y расположение изображения в пределах нового холста, а также его ширину и высоту. $image->resizeCanvas(300, 300, "center", "center") работает довольно хорошо.

+0

Это не решает проблему отсутствия прозрачности на новом холсте, это создает нечто вроде -> http://i.imgur.com/kHp1CDq.jpg – Owen

+0

Странно. Он отлично работает для меня. –

+0

Это пример образа, который не работает, может быть, вам будет полезно http://s33.postimg.org/c6lfmia7j/wu9100.png – Owen