【发布时间】:2011-11-14 07:10:31
【问题描述】:
我正在尝试为图像着色。但这次是一个更棘手的变体。
图像有
saturation、brightness和alpha信息(遗憾的是 RGBA),应该不丢弃这些信息(黑色阴影的饱和度)。tint 颜色有
hue、saturation、brightness和alpha信息(遗憾的是也是RGBA),也不应该被丢弃。正如我想象的那样,每个 HSBA 组件(除了色调)都应该相乘以完全控制着色图像 - 例如当我提供不太亮的色调时,图像亮度也应该按比例缩小。
所以,类似:
(h,s,b,a) = (h_tint, s_tint*s_image, b_tint*b_image, a_tint*a_image)
我搜索了互联网,但这个过程似乎并不常见,即使暂时忽略了 alpha 通道(甚至也忽略了饱和度)。
我在 iOS 中需要它,但我什至在 Photoshop 中都没有找到这样的图层混合模式。我已经尝试过(在 iOS 中,如果存在于 Photoshop 中):
-
Multiply- 一点也不像我想要的 -
Darken- 不是真的 -
Color Dodge- 至少有点用,但不是很正确 -
Plus Darker- 也可以,但不是真的 -
Color/Luminosity/Hue- 这些本来是我的最爱,但它们丢弃了色调的饱和度和亮度值,而不是相乘。但也许有办法在之后应用缺失的饱和度和亮度?
那么,所描述的混合模式是否有一个通用名称/是否有意义?
关于如何在 iOS 中执行此操作的任何想法?(我知道 Apple Developer Guide 和 Reference,以及 stackoverflow 问题 about tinting 和 overlaying)
【问题讨论】:
-
好的,我可能会选择
Luminosity/Color,因为它产生的工作量最少,结果也可以接受。对于想要的较深颜色,结果仍然太亮。 -
顺便说一句,我了解到 Luminosity != Brightness (HSB) != Lightness (HSL)
标签: image graphics image-processing colors uiimage