1

因此,在 Photoshop 中有一种称为“颜色”的透明图层模式,它保留下面图层的亮度,但从当前图层获取色调/饱和度。

我需要使用 PHP 动态更改某些图像的颜色,除了通常的乘法/加法/等之外,我无法找到有关执行此操作的算法的任何信息。

4

2 回答 2

1

我怀疑该算法是将两个图像从 RGB 转换为 HSV,然后将色调通道复制到基础图像。

ImageMagick 有一个色调复合运算符,它是imagick::COMPOSITE_HUE在 PHP 中的。根据此处的评论,这应该有效:

<?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;

?>
于 2012-10-26T04:41:17.960 回答
1

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

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

于 2017-03-17T17:55:11.723 回答