getHue函数返回的色调不正确

编程入门 行业动态 更新时间:2024-10-27 19:20:40
本文介绍了getHue函数返回的色调不正确的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 使用UIColour的内置函数将RGB转换为HSV: - (BOOL)getHue:(CGFloat *)hue saturation:(CGFloat *)饱和亮度:(CGFloat *)亮度alpha: CGFloat *)alpha 但是对于一些RGB,它没有给出正确的输出。

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);

实际输出: 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函数返回的色调不正确

本文发布于:2023-11-11 04:50:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1577426.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不正确   色调   函数   getHue

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!