在PHP中使用ImageMagick重新着色某些亮度值

时间:2017-05-25 10:36:23

标签: php imagemagick

我在导出均衡图像的颜色值时遇到问题,以便重新着色那些均衡的灰色区域。

$imagick = new \Imagick(realpath($imagePath));  
$imagick->modulateImage(100,0,100);             
$imagick->quantizeImage(                        
    13,
    Imagick::COLORSPACE_TRANSPARENT,
    0,
    true,                                       
    false
);

这导致由13种不同亮度级别创建的灰度图像。现在,我无法理解的是将13个亮度级别的颜色导出到数组中,以便使用opaquePaintImage重新着色它们。

现在我只是重新着色RGBA值,这并不像我想的那样准确。

请注意,我也对如何重新着色RGBA值的范围感兴趣。如同,将230-255重新着色为红色,将210-230重新着色为橙色等

这几乎会更好。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在ImageMagick中,有一个-fuzz XX%允许一系列值(某些特定颜色的百分比容差。请参阅http://us3.php.net/manual/en/imagick.opaquepaintimage.php的OpaquePaintImage中的fuzz选项

在Imagemagick中,有一些-unique-colors,用于列出图像中每种颜色中的一种颜色。请参阅http://us3.php.net/manual/en/imagick.uniqueimagecolors.php

上的UniqueImageColors