根据颜色获取对应的RGB值


在封装我的小框架( ZPSegmentBarOC )的时候需要根据颜色来获取对应的RGB值,从而达到颜色有渐变的效果,我从网上找了很多资料,在这里记录下:

方法一

/**
 获取颜色的RGB值

 @param components RGB数组
 @param color 颜色
 */
- (void)getRGBComponents:(CGFloat [3])components forColor:(UIColor *)color {
    CGColorSpaceRef rgbColorSpace = CGColorSpaceCreateDeviceRGB();
    unsigned char resultingPixel[4];
    CGContextRef context = CGBitmapContextCreate(&resultingPixel,
                                                 1,
                                                 1,
                                                 8,
                                                 4,
                                                 rgbColorSpace,
                                                 kCGImageAlphaNoneSkipLast);
    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, CGRectMake(0, 0, 1, 1));
    CGContextRelease(context);
    CGColorSpaceRelease(rgbColorSpace);
    
    for (int component = 0; component < 3; component++) {
        components[component] = resultingPixel[component] / 255.0f;
    }
}

在使用的时候,我们只需要:

CGFloat components[3];
[self getRGBComponents:components forColor:[UIColor blackColor]];
NSLog(@"%f %f %f", components[0], components[1], components[2]);

即可获取RGB的值;

参考: stackoverflow

方法二

- (NSArray *)getRGBWithColor:(UIColor *)color
{
    CGFloat red = 0.0;
    CGFloat green = 0.0;
    CGFloat blue = 0.0;
    CGFloat alpha = 0.0;
    [color getRed:&red green:&green blue:&blue alpha:&alpha];
    return @[@(red), @(green), @(blue), @(alpha)];
}

在使用的时候我们只需要将对应的颜色传入进去即可,该方法就会给我们返回一个数组,里面包括了RGB还有Alpha,较方法一更为简便;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 本文转载自:http://southpeak.github.io/2014/12/10/quartz2d-8/ Q...
    idiot_lin阅读 917评论 0 3
  • 绘制像素到屏幕上 answer-huang22 Mar 2014 分享文章 一个像素是如何绘制到屏幕上去的?有很多...
    阿狸旅途T恤阅读 1,652评论 0 7
  • 作者:米音儿 总是匆匆! 匆匆得无暇顾及路旁的花开 下课了,又是匆匆去医院 高速路南樱花已绽放 禁不住停车驻足 突...
    米音儿阅读 296评论 0 1
  • 静女貌美轻如霞,娇姿清雅慈柔娜。秀坐石旁,芳思君佳。遇之男子,相貌俊飒,正如雄鹰引醉辣。听其歌声伴竹松,词美音妙巧...
    沧桑的格调你不懂阅读 329评论 0 0