CGColor

定义颜色的组件,通过颜色空间来解释其颜色

CGColorRef

CGColor的Release和Retain

void CGColorRelease(CGColorRef color);

CGColorRef CGColorRetain(CGColorRef color);

创建颜色

  1. 使用颜色空间和强度值列表(包括Alpha)创建颜色

    CGColorRef CGColorCreate(CGColorSpaceRef space, const CGFloat *components);
    space: 颜色空间
    components: 描述颜色强度值的n+1个值的数组,n个值对应颜色空间的n歌颜色分量,后加alpha分量

    需要调用CGColorRelease进行释放

  2. Copy已有颜色副本

    CGColorRef CGColorCreateCopy(CGColorRef color);
    

    需要调用CGColorRelease进行释放

  3. 创建通用灰度颜色空间颜色

    CGColorRef CGColorCreateGenericGray(CGFloat gray, CGFloat alpha);
    gray:  A grayscale value (0.0 - 1.0).
    alpha:An alpha value (0.0 - 1.0).
  4. 创建通用RGB颜色空间颜色

    CGColorRef CGColorCreateGenericRGB(CGFloat red, CGFloat green, CGFloat blue, CGFloat alpha);
    red: A red component value (0.0 - 1.0).
    green: A green component value (0.0 - 1.0).
    blue: A blue component value (0.0 - 1.0).
    alpha: An alpha value (0.0 - 1.0)
  5. 创建通用CMYK颜色

    CGColorRef CGColorCreateGenericCMYK(CGFloat cyan, CGFloat magenta, CGFloat yellow, CGFloat black, CGFloat alpha);
    cyan: 0.0=1.0
    magenta: 0.0=1.0
    yellow: 0.0=1.0
    black: 0.0=1.0
    alpha: 0.0=1.0
  6. 创建与现有颜色相同,alpha不同的颜色副本

    CGColorRef CGColorCreateCopyWithAlpha(CGColorRef color, CGFloat alpha);
    

    需要调用CGColorRelease释放

  7. 使用图案颜色空间、图案和强度值列表(包括alpha)创建颜色

    CGColorRef CGColorCreateWithPattern(CGColorSpaceRef space, CGPatternRef pattern, const CGFloat *components);
    

    需要调用CGColorRelease释放

  8. 在不同颜色空间创建与颜色匹配的新颜色

    CGColorRef CGColorCreateCopyByMatchingToColorSpace(CGColorSpaceRef, CGColorRenderingIntent intent, CGColorRef color, CFDictionaryRef options);
    CGColorSpaceRef: 目标颜色空间
    intent: 当颜色在新颜色色域之外时采用的模式
    color: 要转换的颜色
    options: NULL

其他方法

  1. 判断两个颜色是否相同
    当两个颜色的颜色空间以及各个分量值相同时,相同

    bool CGColorEqualToColor(CGColorRef color1, CGColorRef color2);
    
  2. 获取颜色的alpha

    CGFloat CGColorGetAlpha(CGColorRef color);
    
  3. 获取颜色的颜色空间

    CGColorSpaceRef CGColorGetColorSpace(CGColorRef color);
    
  4. 获取与颜色相关的n+1个分量值(包括alpha)

    const CGFloat * CGColorGetComponents(CGColorRef color);
    
  5. 获取指定颜色的分享个数(包括alpha)

    size_t CGColorGetNumberOfComponents(CGColorRef color);
    
  6. 获取与颜色图案空间相关的颜色图案

    CGPatternRef CGColorGetPattern(CGColorRef color);