我对函数
有一个小问题[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)
?!
答案 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];