IMG_FILTER_COLORIZE проблемы - PullRequest
       50

IMG_FILTER_COLORIZE проблемы

2 голосов
/ 10 сентября 2011

Я уже получил несколько хороших советов на форумах, как получить функцию colorize с помощью imagefilter IMG_FILTER_COLORIZE.

Проблема в том, что она не работает так, как я хочу, чтобы работать, ссылка ниже иллюстрирует это лучше всего: http://expromo.pl/klienci/imagefilter/

У меня есть прозрачный png, содержащий какую-то форму.Я хочу:

  • Изменить цвет фигуры так же, как в Photoshop Layer Settings / Colorize *
  • Сохранить прозрачность
  • Сохранить как другой файл PNG

Вот мой код:

$im = imagecreatefrompng('image.png');
imagealphablending($im, false);

if($im && imagefilter($im, IMG_FILTER_COLORIZE, 0,0,255,0))
{
    imagepng($im, 'image-new.png');
    imagedestroy($im);
}

По ссылке выше: http://expromo.pl/klienci/imagefilter/

Первое изображение - это то, что у меня есть.Второе изображение - то, что я получаю, и третье изображение - то, что я хочу получить.

Большое спасибо заранее.

1 Ответ

4 голосов
/ 07 декабря 2011

Вы должны добавить imagesavealpha($im, true);, чтобы альфа-канал был сохранен на новом изображении.

$im = imagecreatefrompng('image.png');
imagealphablending($im, false);

imagesavealpha($im, true);

if($im && imagefilter($im, IMG_FILTER_COLORIZE, 0,0,255,0)) {
    imagepng($im, 'image-new.png');
    imagedestroy($im);
}
...