【问题标题】:Programmatically, how does hue blending work in photoshop?以编程方式,色调混合如何在 Photoshop 中工作?
【发布时间】:2012-03-10 02:23:48
【问题描述】:

在 Photoshop 中,您可以将图层的混合模式设置为“色调”。例如,如果该层用蓝色填充,那么它似乎会占用下面的层,并将其全部变为蓝色,只要存在非白色的颜色。

我想知道它实际上在做什么。如果我有一个带有像素 aarrggbb 的背景图层,并且其顶部的图层设置为混合模式“Hue”,并且该图层上有一个像素 aarrggbb,那么这两个值如何组合以得到我们看到的结果?

它不只是从下面的层中删除 rrggbb。如果这样做,它也会变成白色和黑色。它也不允许通过颜色变化。

如果背景像素是 0xff00ff00 并且相应的色调层像素是 0xff0000ff,那么我假设最终结果将只是 0xff0000ff,因为 ff 蓝色取代了 ff 绿色。但是,如果背景像素是0x55112233,色相层像素是0xff0000ff,那么它是怎么得出它得出的蓝色阴影呢?

我问的原因是我想在我的应用程序中拍摄各种图像并以编程方式更改图像的色调。与其存储具有不同颜色的同一图像的 8 个不同版本,我想存储一张图像并根据需要对其进行着色。

【问题讨论】:

    标签: photoshop hue color-blending


    【解决方案1】:

    我在这里找到了一种将 RGB 转换为 HSV 的算法: http://www.cs.rit.edu/~ncs/color/t_convert.html

    当然,在该页面的底部,它提到 Java Color 对象已经具有在 RGB 和 HSV 之间转换的方法,所以我只是使用了它。

    【讨论】:

      【解决方案2】:

      我一直在研究一种在 javascript/canvas 中复制该混合模式的方法,但我只提出了“着色”过滤器/混合模式。 (以下示例)

      着色算法:

      1. 将颜色从 RGB 转换为 HSL;
      2. 将色调值更改为所需的值(在我的情况下为 172⁰ 或 0.477);
      3. 将更新的 HSL 恢复为 RGB

      注意:我发现这在桌面上是可以的,但在智能手机上却明显很慢。

      您可以通过比较这三张图片来发现差异。原文:

      着色:

      Fireworks 的“混合色调”算法(我认为与 Photoshop 的相同):

      着色过滤器可能是一个很好的替代品。

      RGB/HSL conversion question

      Hue/Chroma and HSL on Wikipedia

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-19
        • 1970-01-01
        • 1970-01-01
        • 2012-06-28
        • 2012-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多