颜色和颜色空间
1. 三色:RGB或者CMY
2. 视觉由视锥细胞和视杆细胞产生。视锥细胞感应亮度,视杆细胞会对蓝色和红色产生感应,默认对黄色产生感应。
3. HSV:Hue,Saturation,Value
4. 屏幕使用颜色相加机制,打印机使用颜色相减机制。
5. 颜色空间:
- 灰度空间:0黑,0.5灰,1.0白
- RGB空间:R G B C M Y K W, sRGB:对RGB的矫正,增加在色温为6500度时做2.2Gamma矫正。
- HSV,HSL
- CMY,CMYK:C = 1- R, M= 1-G, Y= 1-B
- XYZ:CIE based color space。独立于显示设备的颜色空间。所有CIE颜色空间都基于XYZ颜色空间。
XYZ分别代表三种视觉感知细胞对光源的感知程度,由大量的实验统计得出,Y为光强。XYZ为非线性空间。
Yxy 空间:Y =Y, x = X/(X+Y+Z), y = Y/(X+Y+Z)
- LUV空间:对XYZ空间的非线性校正,定义了某个颜色到一个参考白点的距离。不是设备独立的颜色空间。用于比较相似的颜色。
- 索引颜色空间:调色板。
- 名字颜色空间:每种颜色有对应的名字。
6. 颜色管理系统:
- 颜色特性集合。
- 颜色管理模块。
- 颜色匹配系统。
7. 颜色在不同空间转换时会造成颜色丢失。
8. 颜色空间描述:最亮点,最暗点,与目标设备的区别,RGBCMY的最大强度等。创建图像设备的描述叫Source Profile,显示图像设备的描述叫Destination Profile。
9. Profile Connection Space:将一个设备独立颜色空间的颜色转换为设备依赖颜色空间的颜色,使用颜色空间描述转换。
10. 描述类型:
- 设备描述:描述一个设备,包括输入,显示和输出设备。输入包括扫描仪和相机,输出包括打印机和电影拷贝,显示包括显示器和LCD。
- 颜色空间描述:
- 抽象描述:用户自定义的颜色空间描述。
- 设备连接描述:直接描述设备间颜色转换的描述。
- 命名颜色空间的描述:
颜色空间描述能够被嵌入到图像中。
11. 绘制目的:CGContextSetRenderingIntent,默认kCGRenderingIntentDefault
- 视觉匹配:不同设备输出在视觉上保持一致。 kCGRenderingIntentPerceptual
- 相对色阶匹配:kCGRenderingIntentRelativeColorimetric
- 饱和度匹配:kCGRenderingIntentSaturation
- 绝对色阶匹配:kCGRenderingIntentAbsoluteColorimetric
12. ColorSync:苹果的设备独立颜色管理系统。
13. Alpha值:半透明。CGContextSetAlpha,CGContextClearRect
14. Quartz支持创建设备独立颜色空间。iOS只支持设备相关颜色空间。
CGColorSpaceCreateLab/CGColorSpaceCreateICCBased/CGColorSpaceCreateCalibrateRGB/CGColorSpaceCreateCalibrateGray
CGColorSpaceGenericGray/CGColorSpaceGenericRGB/CGColorSpaceGenericCMYK
CGColorSpaceCreateDeviceGray/CGColorSpaceCreateDeviceRGB/CGColorSpaceCreateDeviceCMYK
CGColorSpaceCreateIndexed/CGColorSpaceCreatePattern
15. Quartz中某个颜色必须和某个颜色空间相关。
CGContextSetFillColorSpace/CGContextSetStrokeColorSpace
CGContextSetRGBFillColor/CGContextSetRGBStokeColor
CGContextSetCMYKFillColor/CGContextSetCMYKStrokeColor
CGContextSetGrayFillColor/CGContextSetGrayStrokeColor
CGContextSetFillColorWithColor/CGContextSetStrokeColorWithColor (pass CGColor which specifies color space)
CGContextSetFillColor/CGContextSetStrokeColor (current color space)
16. 创建颜色:CGColorCreate