iOS - 对UIColor颜色反差

时间:2022-01-10 09:32:14

iOS中默认的很多方法可以获得不同种颜色的UIColor对象,但是White和Black等灰度值其实是用灰阶透明度调制 +colorWithWhite:alpha:,这些CGColorRef拥有2个组成成分,剩下的还有4个组成成分(RGBA)的颜色,例如:红,黄和紫色。

    // 获取颜色的组成个数
    size_t totalComponents = CGColorGetNumberOfComponents(origin.CGColor);
    // 判断颜色是否属于灰阶
    BOOL isGreyscale = (totalComponents == 2)?YES:NO;
    // 获取颜色的组成色值
    CGFloat const * oldColorComphonents = CGColorGetComponents(origin.CGColor);
    // 新生成色值的容器
    CGFloat newComphonents[4];