使用gd或ImageMagick在PHP中模拟Photoshop的Multiply

时间:2010-08-16 10:17:45

标签: php image imagemagick gd

直到现在才使用PHP的gd图像库来调整大小,裁剪和灰度图像我正在努力寻找一种方法来模拟当在Photoshop中将彩色图层放在灰度图像上并选择“乘法”时会发生什么'来自图层效果菜单。或者,正如我的老印刷讲师所解释的那样,我需要制作双色调。

出于某种原因,我认为我所需要做的只是简单地将图像变为灰度,然后在顶部放置透明度值小于100%的彩色图层。一旦我这样做了,我就想知道为什么我以为我得到的东西除了褪色外还有其他东西。

然后搜索了gd库文档,我找到的只是IMG_EFFECT_OVERLAY过滤器与imagelayereffect一起使用,但结果是将我的灰度图像的白色保持为白色而不是将其变为红色。

之前我没有使用过ImageMagick(但这是我控制服务器的极少数情况之一,所以我可以根据需要安装它)并且,过去看了一下文档,我猜想像Photoshop的multiply之类的东西将是它的默认过滤器之一。唉没有。

我疲惫的大脑正在努力理解Photoshop的multiply实际上是逐像素地做什么,所以我不知道ImageMagick系列(或者如果可能的话,gd的)更基本的过滤器I可以用来得到我需要的结果。

最后期限迫在眉睫,谷歌拒绝退回任何有用的结果,因此我们将非常感激地收到任何帮助。

3 个答案:

答案 0 :(得分:3)

我发现这是在imagemagick PHP中应用Multiply的最简单方法

$print = new Imagick("blank.jpg");
$printOverlayTexture = new Imagick("overlay.jpg");
$print->compositeImage($printOverlayTexture, Imagick::COMPOSITE_MULTIPLY, 0, 0);

答案 1 :(得分:2)

ImageMagick multiply operation。我不能说Photoshop的结果和质量有多接近(我真的不明白它的作用:),但一定要尝试一下。

答案 2 :(得分:1)

对于它的价值,这里有一系列方便的Dandy ImageMagick脚本。他们不是我的,但我经常发现自己在回顾他们

ImageMagick Scripts