特殊颜色混合模式到色调图像

时间:2011-09-10 08:42:08

标签: image graphics image-processing colors uiimage

我正试图给图像着色。但这次是一个更棘手的变种。

  • 图片已获得saturationbrightnessalpha信息(遗憾地称为RGBA),将被丢弃(黑色饱和度)阴影)。

  • 色调颜色包含huesaturationbrightnessalpha信息(遗憾的是也称为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开发人员GuideReference以及stackoverflow问题about tintingoverlaying

1 个答案:

答案 0 :(得分:0)

您可以使用已知格式创建由您控制下的数据支持的CGBitmapContextRef。然后,您可以将图像绘制到该上下文中。现在,您已获得已知格式的图像数据。你现在可以在像素上做任何你喜欢的数学运算。一旦你完成了与像素的混合,你可以从CGContextRef创建一个CGImageRef。

数学取决于你。