0

如何以编程方式更改 UIImage 的色调?

我正在使用上面页面的建议,用于核心图像过滤器 CIFilter。我遇到的唯一问题是当我旋转到黄色时,它是深芥末黄色,我无法获得最亮的鲜艳黄色,即 R:255 G:255 B:0。我的图层上的图像由简单的颜色 R:255 G:0 B:0 组成,我只想旋转,以获得基本颜色和橙色。橙色效果很好。

我只是不知道为什么当我从 R:255 旋转到尝试得到 R:255 G:255 Yellow 时,它是深黄色。

我在 deltaHueRadians 使用 1.04719755 作为黄色浮点数

我不知道这很奇怪,这是第三次尝试,但我一直得到一个肮脏的黄色。

4

1 回答 1

1

我意识到了这个问题。

在 Photoshop 中,当我用于照片编辑时,我做了很多 Colorize 操作,我把它们与 Hue Rotation 混淆了。

基本上,当您在 Photoshop 中着色时,它会“着色”图像而不仅仅是色相旋转值。

两者之间的区别是一条非常细的线,具体取决于您使用的图像。我真的不想进行完整的解释,但是...

假设您在图层上有一个灰色立方体,并且您为图像着色,立方体将在您使用滑块时旋转颜色。如果您旋转色相,它将保持灰色。

但是,如果您使用红色立方体并旋转色调,那么色调旋转将带您通过颜色,不一定所有颜色都像着色一样。

我相信这个问题与所有那些好的 ole HSV RGB 矩阵疯狂数学问题有关。我现在没有这样做。保持简单。

我决定只做一个着色方法:

CGContextSetBlendMode(context, kCGBlendModeMultiply);

使用灰色物体,这正是我想要的。

从谷歌搜索我发现了这个:

http://coffeeshopped.com/2010/09/iphone-how-to-dynamically-color-a-uiimage

于 2013-04-23T07:52:20.087 回答