如何使用Image Magick模拟Photoshop的“颜色”图层透明度?

时间:2012-10-26 04:05:56

标签: php imagemagick

所以在Photoshop中有一个名为“color”的透明层模式,它保留下面层的亮度,但从当前层获取色调/饱和度。

我需要用PHP动态地改变一些图像的颜色,除了通常的乘法/加/等之外,我还没有能够找到算法的任何信息。

2 个答案:

答案 0 :(得分:1)

我怀疑算法是将图像从RGB转换为HSV,然后将Hue通道复制到基本图像。

ImageMagick有一个hue composite运算符,PHP中为imagick::COMPOSITE_HUE。基于comment here,这应该有效:

<?php

$img1 = new Imagick("image1.png");
$img2 = new Imagick("image2.png");

$img1->compositeImage($img2, imagick::COMPOSITE_HUE, 0, 0);

header('Content-type: image/png');
echo $img1;

?>

答案 1 :(得分:1)

有一个图书馆可以帮助您满足“photoshop”风格要求。它被称为pslayers

您可以使用所需的任何混合模式,并根据需要堆叠任意数量的图层。它也支持过滤。