2012-08-31 63 views
1

我有一个iPhone应用程序,您可以从图像中选择一个像素,它将返回RGBA颜色详细信息。检查像素是否在特定颜色范围内

我需要能够确定所选像素是否在一定的颜色范围内,例如,特定颜色的明亮或黑暗变化。

这样做最有效的方法是什么?

+1

您是否考虑过使用色调,饱和度和亮度? ' - (BOOL)getHue:(CGFloat *)色调饱和度:(CGFloat *)饱和度亮度:(CGFloat *)亮度alpha:(CGFloat *)alpha ' – zaph

+0

这是我考虑过的事情,我只是想知道准确地说,它会检测一个颜色是否在一定范围内。 – AndyC

+2

我同意@Zaph,一旦你知道色相,饱和度和亮度,你可以在一个特定的点上定义一个“3D球体”。色调是什么定义的颜色,饱和度是多么生动的颜色是(或灰色),亮度是亮度的数量。我会假设你想要一个紧密的色调,一个宽松的饱和度和亮度值,如果你没有透明度,不需要看alpha。 – Resh32

回答

3

你首先必须将RGBA颜色空间转换成HSBA(由@Zaph的建议)

- (BOOL)getHue:(CGFloat *)hue saturation:(CGFloat *)saturation brightness:(CGFloat 
*)brightness alpha:(CGFloat *)alpha 

一旦你知道的色调,饱和度和亮度,你可以定义围绕一个特定的一个“3D球体”点。色调是什么定义的颜色,饱和度是多么生动的颜色是(或灰色),亮度是亮度的数量。

我会假设你想要一个紧密的色调和一个宽松的饱和度和亮度值,如果你没有透明度,不需要看alpha。

相关问题