所以在Photoshop中有一个名为“color”的透明层模式,它保留下面层的亮度,但从当前层获取色调/饱和度。
我需要用PHP动态地改变一些图像的颜色,除了通常的乘法/加/等之外,我还没有能够找到算法的任何信息。
答案 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。
您可以使用所需的任何混合模式,并根据需要堆叠任意数量的图层。它也支持过滤。