UIColorをccc4()用の形式に変換する方法
UIColorからr,g,b,aの要素を取り出す。次にUIColorは0〜1、ccc4()は0〜255と使用している値の範囲が異なるのでUIColorから取得した値を * 255 する。
UIColor *color = [UIColor colorWithRed:1.0f green:0.5f blue:0.25f alpha:0.3f]; // UIColor *color = [UIColor grayColor]; const CGFloat *c = CGColorGetComponents(color.CGColor); GLubyte r, g, b, a; r = round(c[0] * 255.0); // kCGColorSpaceModelMonochrome の場合は c[0] にしかデータが入っていない // アルファ値は round(CGColorGetAlpha(color.CGColor) * 255.0) でも取得可能; if (CGColorSpaceGetModel(CGColorGetColorSpace(color.CGColor)) == kCGColorSpaceModelMonochrome) { g = round(c[0] * 255.0); b = round(c[0] * 255.0); a = round(c[1] * 255.0); } else { g = round(c[1] * 255.0); b = round(c[2] * 255.0); a = round(c[3] * 255.0); } NSLog(@"r:%u g:%u b:%u a:%u", r, g, b, a);
参考情報
UIColor-Expanded.m at master from ars/uicolor-utilities - GitHub
https://github.com/ars/uicolor-utilities/blob/master/UIColor-Expanded.m
iphone - Get RGB value from UIColor presets - Stack Overflow
http://stackoverflow.com/questions/4700168/get-rgb-value-from-uicolor-presets