美文网首页
根据颜色获取对应的RGB值

根据颜色获取对应的RGB值

作者: Mark_Guan | 来源:发表于2017-04-05 23:45 被阅读272次

在封装我的小框架( 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,较方法一更为简便;

相关文章

  • 根据颜色获取对应的RGB值

    方法一 在使用的时候,我们只需要: 即可获取RGB的值; 参考: stackoverflow 方法二 在使用的时候...

  • iOS开发:根据颜色得到对应的RGB值

    在开发中,我们有时候需要根据相应的颜色,得到对应的RGB值,我查找了很多,也看了对应的API,没有找到相关的,这是...

  • 取色值相关宏

    iOS中,常用的获取RGB颜色值和十六进制颜色值转换方法的宏定义。#define RGB(r,g,b) ...

  • 获取颜色的RGB值

  • Scss中的颜色函数

    Scss中的颜色函数 一、RGB颜色函数 1、rgb($red,$green,$blue): 根据红、绿、蓝三个值...

  • iOS 16进制颜色

    使用宏定义根据RGB16进制生成对应的颜色。 使用:

  • Swift 获取颜色值RGB

    前言: 还是在袁峥先生写的快速集成App中顶部标题滚动条这篇文章里, 有一个标题RGB 渐变的样式, 就是 lab...

  • UIColor 获取 RGB 值

    一、 UIColor 获取 RGB 值 二、 修改textField的placeholder的字体颜色、大小 推荐...

  • CSS颜色

    颜色 颜色值的常用表示方式 十六进制色 RGB 颜色 RGBA 颜色 RGBA 颜色值是 RGB 颜色值的扩展,带...

  • 网易蜗牛护眼模式rgb

    rgb:[185,224,193] 参考:利用windows 系统的画图工具获取图片上某一点的颜色RGB值

网友评论

      本文标题: 根据颜色获取对应的RGB值

      本文链接:https://www.haomeiwen.com/subject/gpcxattx.html