Динамическое изменение цвета прозрачного изображения
Я должен изменить цвет изображения динамически с помощью 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 ответ
Решение
Если вы говорите о проблеме качества или теневой проблеме, то я могу решить, используя 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.';
}
?>