我想做的就是通过编写CUI工具来替换Photoshop的基于HSL的混合模式(颜色/色调/饱和度/亮度)。 如果我能通过RMagick做到这一点会更好。
ImageMagick可以管理HSL色彩空间,但ImageMagick的复合运算符Colorize / Hue / Saturation / Luminize是硬编码的,基于HSB色彩空间。
如果没有编写逐像素处理代码,是否有任何解决方法? 感谢。
答案 0 :(得分:0)
我尝试了单独和组合的方法。 然后一个故事开始了。
ImageMagick-6.6.9-7有rgb< - > hsl计算的精确定位错误。 Ubuntu 12.04 LTS的软件包存储库提供了它... grrrr (ImageMagick本身,固定在r4431,良好的> = 6.6.9-9)
然后我坐下来做数学运算,得到一个简单的-fx表达式。
colorize_hsl.fx:
ul = u.lightness; vl = v.lightness;
bias = (ul < .5 ? ul : 1 - ul)/(vl < .5 ? vl : 1 - vl);
(v - vl)*bias + ul
这是一个基于rgb的公式,用于设置新的亮度并保持其色调和饱和度。 要获得luminize_hsl,请交换u和v。
临时变量(ul,vl和bias)在所有通道中都很常见, 但-fx引擎可能会尝试3次。 这还不够......