UIColor与Hue

时间:2014-05-25 10:53:33

标签: ios objective-c uicolor

我对函数

有一个小问题
[UIColor colorWithHue: saturation: brightness: alpha: ]

我想创建一个简单的绿色,但亮度稍低,就像我已在“This”网站上测试过一样。这个网站告诉我,我必须使用亮度为76%的RGB-color(163, 255, 133)或者说它在“HSL”中它的值为105(饱和度:100%)。所以我认为很容易做代码:

UIColor *green = [[UIColor alloc] initWithHue:105/360 saturation:1 brightness:0.76 alpha:1];

但是,当我测试这行代码并调试它时,我的绿色是红葡萄酒。调试会话说我的UIColor RGBA-code is (0.76, 0, 0, 1)?!

2 个答案:

答案 0 :(得分:0)

HSV,HSL,HSI和HSB 可互换。更糟糕的是,我相信在某些情况下,每种表示的不同实现当然会产生不同的结果转换为RGB或从RGB转换,更糟糕的是,有时人们认为他们正在使用HSL,而实际上他们正在使用HSL HSV或其他一些此类组合。所以你最好的选择就是继续努力直到它起作用。

在您的具体情况下,您需要找到一种从RGB转换为HSB(或HS *)的方法,并希望您的转换器和您调用的UIColor方法能够执行以下操作:同样的方式。

此外,105/360等于整数除法中的0,这正是您所使用的。尝试使用double值,例如105.0/360.0获得double结果。

答案 1 :(得分:0)

在提供的主页网站上,当您更改亮度时,RGB也会发生变化..所以您可以跳过色调/饱和度/亮度部分,只需在应用程序端使用RGB,如下所示:

[UIColor colorWithRed:77/255.0f green:200/255.0f blue:57/255.0f alpha:1.0f];