【发布时间】:2012-01-19 13:31:26
【问题描述】:
是否可以调整 UIImage/CGContextRef 的色调? 我曾尝试将 Context 与 Color 和 Hue 混合模式混合,但结果错误。
我应该将 RGB 转换为 HSB,然后调整 HSB 并转换回来吗?
【问题讨论】:
标签: ios cgcontext adjustment hue
是否可以调整 UIImage/CGContextRef 的色调? 我曾尝试将 Context 与 Color 和 Hue 混合模式混合,但结果错误。
我应该将 RGB 转换为 HSB,然后调整 HSB 并转换回来吗?
【问题讨论】:
标签: ios cgcontext adjustment hue
我找到了解决方案。我只是简单地将每个像素的颜色转换为 HSB,调整色调并转换回 RBG:
//convert to HSB
CGFloat h, s, l, a;
UIColor *color = [UIColor colorWithRed:r green:g blue:b alpha:1.0f];
[color getHue:&h saturation:&s brightness:&l alpha:&a];
//adjust hue
h *= amount;
//convert back to RGB
color = [UIColor colorWithHue:h saturation:s brightness:l alpha:1.0f];
[color getRed:&r green:&g blue:&b alpha:&a];
这不是最快的解决方案,但很简单
【讨论】:
对于 iOS 5,您可以使用核心图像过滤器名称 CIHueAdjust。
【讨论】: