在PHP中高效地获得图像饱和度

在PHP中高效地获得图像饱和度,php,image,image-processing,gd,imagick,Php,Image,Image Processing,Gd,Imagick,问题是:我有一堆图像,需要过滤那些太暗的图像,例如,其中有太多的黑色 我查看了PHP的Imagick和GD文档,但找不到一个函数来提供图像的饱和度或色调。我需要一些有效的方法,从JPeg图像中找出一幅图像是否超过70%的黑色。也许派对晚了一点,但这是谷歌的结果,所以我想我应该提供我的答案 很可能您要做的是改变亮度。下面是我使用的脚本。如果脚本使图像太亮或不够亮,则可以修改$target\u mean ```php $target_mean = 46000; $Img = new Imagick(

问题是:我有一堆图像,需要过滤那些太暗的图像,例如,其中有太多的黑色


我查看了PHP的Imagick和GD文档,但找不到一个函数来提供图像的饱和度或色调。我需要一些有效的方法,从JPeg图像中找出一幅图像是否超过70%的黑色。

也许派对晚了一点,但这是谷歌的结果,所以我想我应该提供我的答案

很可能您要做的是改变亮度。下面是我使用的脚本。如果脚本使图像太亮或不够亮,则可以修改
$target\u mean

```php

$target_mean = 46000;
$Img = new Imagick('/path/to/file.jpg');
$mean = $Img->getImageChannelMean(imagick::CHANNEL_ALL)['mean'];

if($target_mean > $mean * 1.05){//don't change if brightness is within 5%
    $perc_diff = ($target_mean / $mean) * 100;
    $Img->modulateImage($perc_diff,100,100);
    $Img->writeImage('/path/to/file.jpg');
}