使用PHP ImageMagick为图像着色–保持白色像素为白色

时间:2020-11-11 17:47:09

标签: php imagemagick colorize

enter image description here

我想用ImageMagick为图像着色,如图所示。但是当我用

$image_color1 = new Imagick('file.png');
$image_color1->setImageType(Imagick::IMGTYPE_GRAYSCALEMATTE);
$color1 = new \ImagickPixel("rgb(0, 0, 220)");
$image_color1->colorizeImage($color1, 1, true);

白色像素变成黄色,如图像中所示。

当我使用这样的PHP imagefilter进行操作

imagefilter($image_color1, IMG_FILTER_COLORIZE, 0, 0, 220)

在没有不同颜色的情况下看起来要好得多。所以我的问题是:如何用PHP和ImageMagick接收彩色图像(如上所示)(白色必须再次变为白色)。

或者:我可以将PHP“ IMG_FILTER_COLORIZE”与ImageMagic结合使用吗?怎么办?

1 个答案:

答案 0 :(得分:0)

您可以执行与以下Imagemagick命令行等效的PHP,该命令行创建一个LUT并将其应用于灰度图像。

输入:

enter image description here

convert img.png -colorspace gray \( -size 1x1 xc:blue xc:white +append -resize 256x1 \) -clut x.png

enter image description here

convert img.png -negate \( +clone -fill blue -colorize 100 -negate \) -compose multiply -composite -negate x.png

enter image description here