0

所以我有一个我已经创建的颜色,我试图返回一个它是多么白的值......

color1 = [UIColor colorWithRed:188/255.f green:50/255.f blue:219/255.f alpha:1];

我可以使用以下方法返回色相、饱和度、亮度的值:

[color1 getHue:&hue saturation:&saturation brightness:&brightness alpha:&alpha];

它工作得很好,我得到了各种浮点值

但是当我尝试使用 Apple 的“GetWhite”方法时,无论我输入哪种颜色,返回的值始终为 0.00000。

[color1 getWhite:&white alpha:&alpha];

我究竟做错了什么?我需要先将颜色转换为灰度吗?如果是这样,我该怎么做?是否有更简单的方法来检测某物的白度……只需平均红/绿/蓝值然后除以 255?谢谢!

(*另外,我的声誉还不够高,无法在其中添加标签“getWhite”,有人可以创建它吗...当我搜索此问题的答案时,什么都没出现...也许创建该标签会帮助其他有需要的人.)

4

1 回答 1

2

您的问题表明您可能不了解 getWhite 的目的。从文档:

如果颜色在兼容的颜色空间中,则颜色将转换为灰度格式...

所以这个函数的目的是获取灰度的颜色值。如果您描述了获得此价值的目的,我们或许能够更详细地为您提供帮助。

也就是说,如果这确实是您要使用的函数,您还应该测试 getWhite 的返回值。文档提到了有关返回值的内容:

如果可以转换颜色,则为 YES,否则为 NO。

于 2013-01-07T18:32:42.353 回答