实际输出: Output-> :1,hue:1.000000,sat:0.017391,value:0.901961,alpha:1.000000
预期输出: hue:0,sat:0.017391,value:0.901961,alpha:1.000000
注意:我已经从一些在线转换工具(例如: www.rapidtables/convert/color/rgb-to-hsv.htm )您可以清楚地看到Hue的区别吗?那么,为什么Hue的这种差异和如何获得我的预期输出?
解决方案HSB或HSL中的色调被测量为围绕色圈的度数,以0°处的红色开始并且在360处包绕回到红色°;因此0°的色相与360°的色相相同。 UIColor 将此范围(0-360°)映射到值0-1(0°= 0.0,360°= 1.0)。
I am converting RGB to HSV using built in function of UIColour: - (BOOL)getHue:(CGFloat *)hue saturation:(CGFloat *)saturation brightness:(CGFloat *)brightness alpha:(CGFloat *)alpha but for some RGB it is not giving correct output.
CGFloat h,s,v,a; UIColor *tColor=[UIColor colorWithRed:(230.0/255.0) green:(226.0/255.0) blue:(226.0/255.0) alpha:1.0]; BOOL success=[tColor getHue:&h saturation:&s brightness:&v alpha:&a]; NSLog(@"Output-> Success:%d, hue:%f, sat:%f, value:%f, alpha:%f",success,h,s,v,a);Actual output: Output-> Success:1, hue:1.000000, sat:0.017391, value:0.901961, alpha:1.000000
Expected output: hue:0, sat:0.017391, value:0.901961, alpha:1.000000
Note: I have derived this expected output from some online conversion tools(ex: www.rapidtables/convert/color/rgb-to-hsv.htm)
You can see clearly difference in Hue? So, why such difference in Hue and how can I get my expected output?
解决方案Hue in HSB or HSL is measured as degrees around a colour circle, starting with red at 0° and wrapping back around to red at 360°; so a hue of 0° is the same as a hue of 360°. UIColor maps this range (0–360°) to the values 0–1 (0°=0.0, 360°=1.0).
更多推荐
getHue函数返回的色调不正确
发布评论