【发布时间】:2014-04-25 11:48:19
【问题描述】:
问题:我有一堆图像,需要过滤那些太暗的图像,例如里面的黑色太多了。
我查看了 PHP 的 Imagick 和 GD 文档,但找不到提供图像饱和度或色调的函数。我需要一些有效的方法来确定来自 JPeg-Images 的图像是否超过 70% 的黑色。
【问题讨论】:
标签: php image image-processing gd imagick
问题:我有一堆图像,需要过滤那些太暗的图像,例如里面的黑色太多了。
我查看了 PHP 的 Imagick 和 GD 文档,但找不到提供图像饱和度或色调的函数。我需要一些有效的方法来确定来自 JPeg-Images 的图像是否超过 70% 的黑色。
【问题讨论】:
标签: php image image-processing gd imagick
聚会可能有点晚了,但这出现在 Google 的结果中,所以我想我会提供我的答案。
您可能想要做的是改变亮度。下面是我使用的脚本。如果脚本使图像太亮或不够亮,则可以修改 $target_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');
}
【讨论】: