用imagick或GD替换透明PNG中的纯色

时间:2011-01-27 02:53:57

标签: colors gd imagick

我只有一个透明的PNG,星形图形为纯色,让我们说#FF0000;
如何更换或转换为用户选择的任何十六进制颜色? 我查看了PHP,但在尝试了很多代码之后,似乎什么都没有用? (对于PHP.net上几乎所有的imagick函数,我都会收到警告,“此函数目前尚未记录”)

在我的服务器上运行PHP 5.2.5版

imagick模块版本:2.1.1 ImageMagick版本:ImageMagick 6.4.1

GD版:捆绑(2.0.34兼容)

1 个答案:

答案 0 :(得分:1)

假设星形图形是均匀的颜色,您可以使用以下功能:

function recolorStar($filename, $color) {
    $img = new Imagick($filename);
    $img->colorizeImage($color, 0.0);
    header('content-type: image/png');
    echo $img;
}

$ color应以RGB十六进制格式指定,例如“#00FF00”。

如果您不想直接将其输出到浏览器,则可以修改最后几行。