【发布时间】:2016-03-22 02:50:41
【问题描述】:
我们希望使用CoreImage 在iOS 8.0+ 应用中实现HSL 颜色调整滤镜。
加载图像后,用户选择一种颜色(如红色),然后可以调整色调、饱和度和亮度 strong> 只有图像中的那种颜色。在显示预览时,此过滤器可能会在一秒钟内应用多次,因此性能非常重要。
过滤器应该接受 inputImage、目标颜色的参数,然后调整 hue、saturation 和 luminance。
CIImage *inputImage
UIColor *targetColor
float hueAdjustment (identity 0)
float saturationAdjustment (identity 0)
float luminanceAdjustment (identity 0)
我们已经尝试过这个方法,因为这会将HSB过滤器应用于整个图像而不是某些颜色,所以我们不能使用这个
How to apply HSB color filters to UIImage
我感觉这涉及到CIColorMatrix,但我不确定我们如何让矩阵只应用于特定的颜色范围。
【问题讨论】:
-
听起来很愚蠢,你对“颜色”的定义是什么?如果我选择红色 - (1.0, 0.0, 0.0) - 并将其映射为蓝色,那么我的源图像中的像素会发生什么,例如(0.99, 0.0, 0.0)?因数字上不同的颜色而保持不变,由于足够接近而完全调整为纯红色,根据与红色的接近程度相关的某个比例量进行调整,或其他什么?
-
一点也不傻。正如你所说,它应该按比例调整颜色。比例本身可以设置为“容差”或其他变量,可能调整每种颜色的容差,或通过其他类似方法
标签: ios objective-c swift opengl-es core-image