根據(jù)顏色獲取對應(yīng)的RGB值


在封裝我的小框架( ZPSegmentBarOC )的時候需要根據(jù)顏色來獲取對應(yīng)的RGB值,從而達(dá)到顏色有漸變的效果,我從網(wǎng)上找了很多資料,在這里記錄下:

方法一

/**
 獲取顏色的RGB值

 @param components RGB數(shù)組
 @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)];
}

在使用的時候我們只需要將對應(yīng)的顏色傳入進(jìn)去即可,該方法就會給我們返回一個數(shù)組,里面包括了RGB還有Alpha,較方法一更為簡便;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 本文轉(zhuǎn)載自:http://southpeak.github.io/2014/12/10/quartz2d-8/ Q...
    idiot_lin閱讀 984評論 0 3
  • 繪制像素到屏幕上 answer-huang22 Mar 2014 分享文章 一個像素是如何繪制到屏幕上去的?有很多...
    阿貍旅途T恤閱讀 1,772評論 0 7
  • 作者:米音兒 總是匆匆! 匆匆得無暇顧及路旁的花開 下課了,又是匆匆去醫(yī)院 高速路南櫻花已綻放 禁不住停車駐足 突...
    米音兒閱讀 314評論 0 1
  • 靜女貌美輕如霞,嬌姿清雅慈柔娜。秀坐石旁,芳思君佳。遇之男子,相貌俊颯,正如雄鷹引醉辣。聽其歌聲伴竹松,詞美音妙巧...
    滄桑的格調(diào)你不懂閱讀 346評論 0 0

友情鏈接更多精彩內(nèi)容