大佬教程收集整理的这篇文章主要介绍了ios – 是否有将UIColor转换为色相饱和度亮度的功能?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
[UIColor colorWithRed:0.53 green:0.37 blue:0.11 alpha:1.00];
我可以设置uicolor与hsb值:
[UIColor colorWithHue:0.10 saturation:0.16 brightness:0.13 alpha:1.00];
我也可以将其转换回RGB:
CGFloat* colors = CGColorGetComponents(Color1.CGColor);
但是我可以如何从uicolor获得HSB?
从苹果文档:
“返回构成HSB颜色空间中颜色的组件.”
- (BOOL)getHue:(CGFloat *)hue saturation:(CGFloat *)saturation brightness:(CGFloat *)brightness alpha:(CGFloat *)alpha
UIColor *TESTColor = [UIColor colorWithRed:0.53 green:0.37 blue:0.11 alpha:1.00]; CGFloat hue; CGFloat saturation; CGFloat brightness; CGFloat alpha; BOOL success = [TESTColor getHue:&hue saturation:&saturation brightness:&brightness alpha:&alpha]; NSLog(@"success: %i hue: %0.2f,saturation: %0.2f,brightness: %0.2f,alpha: %0.2f",success,hue,saturation,brightness,alpha);
NSLog输出:
以下是@WhiteTiger提供的方法的更正版本:
// Test values CGFloat red = 0.53; CGFloat green = 0.37; CGFloat blue = 0.11; CGFloat hue = 0; CGFloat saturation = 0; CGFloat brightness = 0; CGFloat minRGB = MIN(red,MIN(green,bluE)); CGFloat maxRGB = MAX(red,MAX(green,bluE)); if (minRGB==maxRGB) { hue = 0; saturation = 0; brightness = minRGB; } else { CGFloat d = (red==minRGB) ? green-blue : ((blue==minRGB) ? red-green : blue-red); CGFloat h = (red==minRGB) ? 3 : ((blue==minRGB) ? 1 : 5); hue = (h - d/(maxRGB - minRGB)) / 6.0; saturation = (maxRGB - minRGB)/maxRGB; brightness = maxRGB; } NSLog(@"hue: %0.2f,value: %0.2f",brightness);
NSLog输出:
以上是大佬教程为你收集整理的ios – 是否有将UIColor转换为色相饱和度亮度的功能?全部内容,希望文章能够帮你解决ios – 是否有将UIColor转换为色相饱和度亮度的功能?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。