我当时正在使用PHP制作图像过滤器,但找不到类似https://pinetools.com/的过滤器。特别是下面列出的那些:
基于ImageMagick,我无法在PHP GD过滤器或PHP Imagick中找到这些过滤器的解决方案。
对此有任何解决方案吗?有没有我找不到的所有这些过滤器? 如何将这些过滤器应用于PHP Imagick中的图像?
我知道这个问题很广泛,请不要专门讨论,我认为为每个过滤器单独发布一个问题很奇怪?
答案 0 :(得分:1)
我已经在ImageMagick命令中得出了与Pinetools剪辑图像等效的值,范围为0到50。
输入:
例如,在50时,剪辑图像会产生以下内容:
以下ImageMagick命令再现了这一点:
convert lena.jpg -black-threshold 50% -white-threshold 50% clip_image_imagemagick.png
Imagick中使用的功能是:
http://us3.php.net/manual/en/imagick.blackthresholdimage.php http://us3.php.net/manual/en/imagick.whitethresholdimage.php
我不知道Imagick,但是在文档中,它似乎想要一个阈值作为颜色,因此当剪辑图像值为50时,请尝试“灰色(50%)”。
类似地,我已经得出了与Pinetools Adjust颜色相同的结果。
这是Pinetools红色调整50的结果。
在ImageMagick中,应该是:
convert lena.jpg -channel r -level 0x50% +channel adjust_red_50.png
Imagick命令是: http://us3.php.net/manual/en/imagick.levelimage.php
但是我不确定这些值是多少。我相信它们的数量可能在0到量子范围内。因此,如果您的IM版本为Q16,则为0到65535,如果IM版本为Q8,则为0到255。因此,Q16中的50%为65535/2 = 32767.5。所以
levelImage(0,1.0,32767.5,$ channel = Imagick :: CHANNEL_RED);
对于Pinetools曝光50,我可以使用ImageMagick命令-evaluate add关闭它。
Pinetools曝光50:
ImageMagick命令为:
convert lena.jpg -evaluate add 40% lena_add_40%.png
对于Pinetools曝光100:
ImageMagick命令将是该命令的两倍:
convert lena.jpg -evaluate add 80% lena_add_80%.png
50的Imagick命令可能是: http://us3.php.net/manual/en/imagick.evaluateimage.php
evaluateImage(Imagick::EVALUATE_ADD, 26214);
其中65535 * 40/100 = 26214
对于Pinetools Vibrance 50:
您可以在ImageMagick中通过将颜色空间更改为HSL(或HCL或类似的颜色),然后将S形对比度应用于“饱和度/色度”通道来实现。
一个近似的等值词是:
convert lena.jpg -colorspace HSL -channel g -sigmoidal-contrast 3,0% +channel -colorspace sRGB tmp.jpg
在Imagick中,您可以使用以下方法更改色彩空间: http://us3.php.net/manual/en/imagick.transformimagecolorspace.php
然后将sigmoidalcontrastImage应用于饱和通道,该通道在HSL中将是绿色通道: http://us3.php.net/manual/en/imagick.sigmoidalcontrastimage.php
然后将色彩空间转换回(s)RGB。
请注意,S形对比度是非线性的。您希望将中点设置为0%,以使曲线的笔直部分位于0,而弯曲成接近平坦的曲线部分位于右上角。因此,它就像是饱和度上的非线性亮度控制。
答案 1 :(得分:0)
您将找不到这些过滤器的一对一匹配。但是,尽管参数控制有所不同,但您可以在Imagick(或直接ImageMagick)中获得以下效果。
剪辑图像为http://us3.php.net/manual/en/imagick.contraststretchimage.php
调整频道为 http://us3.php.net/manual/en/imagick.levelimage.php
变化曝光也是 http://us3.php.net/manual/en/imagick.levelimage.php
没有精确的等效振动,但是您可以使用以下方法更改饱和度: http://us3.php.net/manual/en/imagick.modulateimage.php
如果您使用的是类似Unix的系统,则可以使用PHP exec()并运行一些bash ImageMagick Shell脚本。我有几种用于充满活力和曝光的东西(称为xposure),一种用于亮度对比调整。参见http://www.fmwconcepts.com/imagemagick/index.php