CGColorRef & CGGradientRef

linear Gradient:

    // get context

    CGContextRef context = UIGraphicsGetCurrentContext();

    // 颜色

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceCMYK();

    /*

    赤色 RGB255, 0, 0 CMYK 0, 100, 100, 0

    橙色 RGB 255, 165, 0 CMYK0, 35, 100, 0

    黄色 RGB255, 255, 0 CMYK0, 0, 100, 0

    绿色  RGB0, 255, 0 CMYK100, 0, 100, 0

    青色  RGB0, 127, 255 CMYK100, 50, 0, 0

    蓝色  RGB0, 0, 255 CMYK100, 100, 0, 0

    紫色  RGB139, 0, 255 CMYK45, 100, 0, 0

     */

    CGFloat components[] = {

        0, 100.0 / 255,100.0/255,0,

        0,35.0/255,100.0/255,0,

        0,0,100.0/255,0,

        100.0/255,0,100.0/255,0,

        100.0/255,50.0/255,0,0,

        100.0/255,100.0/255,0,0,

        45.0/255,100.0/255,0,0

    };

    

    // 位置

    CGFloat location[] = {0.0,1.0/6,2.0/6,3.0/6,4.0/6,5.0/6,1.0};

    // 渐变

    CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, components, location, 7);

    // draw

    CGContextDrawLinearGradient(context, gradient, CGPointMake(10, 20), CGPointMake(110, 20), 0);


-----------------------------------------------------

radial Gradient:

 // 获取上下文

    CGContextRef context = UIGraphicsGetCurrentContext();

    // RGB上下文渲染器

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

    // 颜色容器

    NSArray *array = @[(__bridge id)[UIColor redColor].CGColor, (__bridge id)[UIColor blueColor].CGColor, (__bridge id)[UIColor purpleColor].CGColor];

    // 颜色分布的位置

    CGFloat location[] = {0.0,0.5,1.0};

    // 渐变器

    CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)array, location)

    // 显示结果

    CGContextDrawRadialGradient(context, gradient, CGPointMake(100, 100), 50, CGPointMake(100, 100), 100, 0);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在iOS中,可以使用UIColor的RGB属性来表示颜色。要将RGB颜色值转换为Lab颜色空间,可以使用Core Graphics框架中的CGColor转换方法。具体步骤如下: 1. 首先,将RGB值转换为CGColor对象: ```objective-c CGFloat red = 1.0; // 替换为实际的红色RGB值 CGFloat green = 0.5; // 替换为实际的绿色RGB值 CGFloat blue = 0.0; // 替换为实际的蓝色RGB值 CGFloat alpha = 1.0; // 替换为实际的透明度值 CGColorRef colorRef = CGColorCreateGenericRGB(red, green, blue, alpha); ``` 2. 使用CGColorConvertToLab方法将CGColor转换为Lab颜色空间: ```objective-c CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); // 创建设备RGB颜色空间 CGColorRef labColor = CGColorConvertToLab(colorSpace, colorRef); ``` 3. 最后,将Lab颜色转换回RGB值(如果需要): ```objective-c CGFloat* components = (CGFloat*)CGColorGetComponents(labColor); CGFloat labRed = components[0]; // Lab颜色的红色分量 CGFloat labGreen = components[1]; // Lab颜色的绿色分量 CGFloat labBlue = components[2]; // Lab颜色的蓝色分量 CGFloat labAlpha = components[3]; // Lab颜色的透明度 CGFloat rgbRed = labRed / 255.0; // 转换为RGB颜色值的红色分量 CGFloat rgbGreen = labGreen / 255.0; // 转换为RGB颜色值的绿色分量 CGFloat rgbBlue = labBlue / 255.0; // 转换为RGB颜色值的蓝色分量 CGFloat rgbAlpha = labAlpha; // 透明度不需要转换 CGColorSpaceRelease(colorSpace); // 释放颜色空间 CGColorRelease(colorRef); // 释放CGColor对象 CGColorRelease(labColor); // 释放Lab颜色 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值