How to programmatically change the hue of UIImage?
我正在使用上面页面的建议,用于核心图像过滤器CIFilter。我唯一的问题是,当我旋转到黄色色调时,它是暗淡黄色的,我无法得到最明亮的鲜艳的黄色,例如R:255 G:255 B:0。我有一些图像是由一个简单的颜色R:255 G:0 B:0组成的图层,我只想旋转一下,得到基本的颜色加上橙色。不过橙色的效果很好。
我只是不知道为什么当我从R:255旋转到尝试得到R:255 G:255黄色时,它是一个暗黄色。
我在deltaHueRadians用1.04719755表示黄色浮点数
我不知道这很奇怪,这是第三次尝试了,但我总是得到一个暗黄色。
发布于 2013-04-23 15:52:20
我意识到了问题所在。
在Photoshop中,当我编辑照片时,我做了太多的Colorize操作,我把它们和色调旋转搞混了。
基本上,当你在Photoshop中着色时,它将“着色”图像,而不仅仅是色调旋转值。
两者之间的区别是一条非常细的线,这取决于您使用的是什么图像。我真的不想做一个完整的解释,但是...
假设你在一个层上有一个灰色的立方体,你给图像上色,当你使用滑块时,这个立方体将旋转颜色。如果您色调旋转,它将保持灰色。
但是如果你拿一个红色的立方体,并且色调旋转,那么色调旋转将带你穿过颜色,不一定所有的颜色都像彩色化。
我相信这个问题与所有好的ole HSV RGB矩阵疯狂的数学问题有关。但我现在不会这么做。保持简单。
我决定只做一个colorize方法:
CGContextSetBlendMode(context,kCGBlendModeMultiply);
灰色物体,这正是我想要的。
通过谷歌搜索,我发现了这个:
http://coffeeshopped.com/2010/09/iphone-how-to-dynamically-color-a-uiimage
https://stackoverflow.com/questions/16160059
复制相似问题