0

是否可以调整 UIImage/CGContextRef 的色调?我试图将上下文与颜色和色调混合模式混合,但结果是错误的。

我应该将 RGB 转换为 HSB,调整 HSB 并转换回来吗?

4

2 回答 2

1

我找到了解决方案。我只是将每个像素的颜色转换为 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];

这不是最快的解决方案,但它很简单

于 2011-12-13T18:04:50.830 回答
1

对于 iOS 5,您可以使用核心图像过滤器名称 CIHueAdjust。

CIHue调整滤镜

于 2011-12-13T21:22:01.857 回答