динамически менять цвет прозрачного изображения - PullRequest
2 голосов
/ 01 октября 2011

Мне нужно динамически менять цвет изображения с помощью php. Я использовал следующий код

$imgname = "source.png";
$im = imagecreatefrompng ($imgname);
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 27, 133, 85))
{
    echo 'Image successfully shaded as per color.';

    imagepng($im, 'Result.png');
    imagedestroy($im);
}
else
{
    echo 'Image create succesfully.';
}

но когда я использовал его с прозрачным изображением, оно показало мне большую границу вещи

можем ли мы разрешить использование GD Lib или image stick любой функции ???

1 Ответ

2 голосов
/ 04 октября 2011

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

код должен быть

<?php
$imgname = "source.png";
$im = imagecreatefrompng ($imgname);
imagesavealpha($im, true);  
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 27, 133, 85))
{
    echo 'Image successfully shaded as per color.';

    imagepng($im, 'Result.png');
    imagedestroy($im);
}
else
{
    echo 'Image create succesfully.';
}
?>
...