Quartz2D学习笔记(二):颜色空间

//简介

//1.Quartz中的颜色是用一组数值来表示。而颜色空间用于解析这些颜色信息,常用颜色空间有 RGB 、CMYK等。

//2.Quartz支持通用颜色空间、设备独立颜色空间、设备依赖颜色空间、索引颜色空间和模式(Pattern)颜色空间

//3.iOS不支持设备独立颜色空间和通用颜色空间。iOS应用程序必须使用设备颜色空间

CGContextRefcurrentRef = UIGraphicsGetCurrentContext();

//透明度

//使用CGContextSetAlpha设置透明度

CGContextSetAlpha(currentRef, 0.2);//设置透明度需要在渲染之前才有效

//使用CGContextClearRect清除上下文的alpha通道

CGContextClearRect(currentRef, CGRectMake(20, 20, 200,300));//清除这个区域的alpha通道后,这个区域将默认透明,变为黑色

//创建设备依赖颜色空间

//创建

CGColorSpaceRef colorSpaceGray =CGColorSpaceCreateDeviceGray();//创建设备依赖灰色颜色空间

CGColorSpaceRef colorSpaceRGB =CGColorSpaceCreateDeviceRGB();//创建设备依赖RGB颜色空间

CGColorSpaceRef colorSpaceCMYK =CGColorSpaceCreateDeviceCMYK();//创建设备依赖CMYK颜色空间

//调用CGContextSetFillColorSpace 与CGContextSetStrokeColorSpace设置颜色空间

CGContextSetFillColorSpace(currentRef, colorSpaceRGB);//设置填充

CGContextSetStrokeColorSpace(currentRef,colorSpaceRGB);//设置描边

//调用如下函数来便捷的设置设备依赖RGB颜色空间并设置颜色值。

CGContextSetRGBFillColor(currentRef, 1, 0, 0, 1);

CGContextSetRGBStrokeColor(currentRef, 0, 1, 0, 1);

//调用如下函数来便捷的设置设备依赖CMYK颜色空间并设置颜色值。

CGContextSetCMYKFillColor(currentRef, 1, 0, 0, 0, 1);

CGContextSetCMYKStrokeColor(currentRef, 0, 1, 0, 0, 1);

//调用如下函数来便捷的设置设备依赖灰度颜色空间并设置颜色值。

CGContextSetGrayFillColor(currentRef, 0.5, 1);

CGContextSetGrayStrokeColor(currentRef, 0.3, 1);

//调用如下函数来便捷的使用 CGColor 设置颜色值并使用 CGColor 指定的颜色空间

////Anycolor space; you supply a CGColor object that specifies the colorspace. Use these functions for colors you needrepeatedly.(任意颜色空间,提供一个CGColor对象指定给颜色空间。使用下面的这些方法来设置需要的颜色,可以重复使用)

CGFloatcolors

= {1.0,0.0,0.0,1.0};

CGColorRefcolor = CGColorCreate(colorSpaceCMYK, colors);

CGContextSetStrokeColorWithColor(currentRef, color);

CGContextSetFillColorWithColor(currentRef, color);

//调用如下函数来便捷的设置颜色值并使用正在使用的颜色空间。

CGContextSetStrokeColor(currentRef, colors);

CGContextSetFillColor(currentRef, colors);

//设置和创建颜色

//通过如下函数设置和创建颜色。

CGContextSetStrokeColorWithColor(currentRef, [UIColorredColor].CGColor);

CGContextSetFillColorWithColor(currentRef, [UIColorgreenColor].CGColor);

//设置再现意图(Rending Intent)

//再现意图用于指定如何将源颜色空间的颜色映射到图形上下文的目标颜色空间的颜色范围内。

//如果不显式的指定再现意图,Quartz 使用“相对色度再现意图”应用于所有绘制(不包含位图图像)。

//对于位图图像,Quartz默认使用“感知再现意图”。

//调用CGContextSetRenderingIntent(context, kCGRenderingIntentDefault)来设置再现意图。

CGContextSetRenderingIntent(currentRef,kCGRenderingIntentDefault);

你可能感兴趣的:(Quartz2D学习笔记(二):颜色空间)