在Photoshop中,您可以将图层的混合模式设置为" Hue"。例如,如果该图层填充蓝色,那么它似乎采用下面的图层,并且只要存在非白色的颜色,就会将其全部变为蓝色。
我想知道它到底在做什么。如果我有一个带有像素aarrggbb的背景图层,并且其顶部的图层设置为混合模式" Hue"并且该层上有一个像素aarrggbb,这两个值如何结合起来得到我们看到的结果?
它不会从下面的图层中删除rrggbb。如果它这样做,它也会变成白色和黑色。它也不会允许颜色变化。
如果背景像素是0xff00ff00并且相应的色调层像素是0xff0000ff,那么我假设最终结果将是0xff0000ff,因为ff blue替换ff green。但是,如果背景像素为0x55112233且色调层像素为0xff0000ff,那么它是如何产生蓝色阴影的呢?
我问的原因是我想在我的应用程序中以编程方式拍摄各种图像并更改图像的色调。我不是存储具有不同颜色的相同图像的8个不同版本,而是希望存储一个图像并根据需要对其进行着色。
答案 0 :(得分:0)
我在这里找到了一种将RGB转换为HSV的算法: http://www.cs.rit.edu/~ncs/color/t_convert.html
当然,在该页面的底部,它提到Java Color对象已经有用于在RGB和HSV之间进行转换的方法,所以我只是使用了它。
答案 1 :(得分:0)
我一直在研究一种在javascript / canvas中复制混合模式的方法,但我只提出了“着色”滤镜/混合模式。 (以下示例)
着色算法:
注意:这在桌面上没问题,但在智能手机上显得很慢,我找到了。
您可以通过比较这三个图像来查看差异。原文:
彩色化:
Fireworks的“混合色调”算法(我认为与Photoshop相同):
colorize过滤器可能是一个很好的替代品。