LoginSignup
8
10

More than 5 years have passed since last update.

UIColorからR,G,B,A各要素の取り出し

Last updated at Posted at 2012-12-26

UIColorからRGBAの各要素を取り出すには、以下のようにする。
getRed:green:blue:alpha:, getWhite:alpha:の両メソッドがUIColorに追加されたのがiOS 5.0からなので、古いiOSをサポートする場合には要注意。
また、RGBAの各コンポーネントが、カラーの場合と単色の場合とで使用メソッド/関数が異なる為、エラーチェックを実施している。

iOS 5.x以降の場合

getcolor.m
UIColor *color = [UIColor redColor];
CGFloat r, g, b, a;
if (![color getRed:&r green:&g blue:&b alpha:&a]) {
    [color getWhite:&r alpha:&a];
    g = b = r;
}

iOS 4.x以前の場合

getcolor.m
UIColor *color = [UIColor redColor];
CGFloat r, g, b, a;
const CGFloat *components = CGColorGetComponents(color.CGColor);
if (CGColorGetNumberOfComponents(color.CGColor) == 4) {
    r = components[0];
    g = components[1];
    b = components[2];
    a = components[3];
} else {
    r = components[0];
    g = components[0];
    b = components[0];
    a = components[1];
}
8
10
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10