我已经在论坛上得到了一些关于如何使用图像过滤器 IMG_FILTER_COLORIZE 获得着色功能的很好的建议。
问题是它无法按照我希望的方式工作,下面的链接最好地说明了这一点: http://expromo.pl/klienci/imagefilter/
我有一个包含某种形状的透明 png。 我想要:
- 像 Photoshop 图层设置一样更改形状的颜色/ 着色会
- 保持透明度
- 将其另存为另一个 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/
第一张图片是我的。第二张图片是我得到的,第三张图片是我想要得到的。
提前非常感谢。
最佳答案
您必须添加imagesavealpha($im, true);
,以便将 Alpha channel 保存在新图像上。
$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);
}
关于php - IMG_FILTER_COLORIZE 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7372178/