我正试图给图像着色。但这次是一个更棘手的变种。
图片已获得saturation
,brightness
和alpha
信息(遗憾地称为RGBA),不将被丢弃(黑色饱和度)阴影)。
色调颜色包含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开发人员Guide和Reference以及stackoverflow问题about tinting和overlaying)
答案 0 :(得分:0)
您可以使用已知格式创建由您控制下的数据支持的CGBitmapContextRef。然后,您可以将图像绘制到该上下文中。现在,您已获得已知格式的图像数据。你现在可以在像素上做任何你喜欢的数学运算。一旦你完成了与像素的混合,你可以从CGContextRef创建一个CGImageRef。
数学取决于你。