使用以下内容创建核心图像CIContext时:
contextWithCGLContext:pixelFormat:colorSpace:options:
您可以使用CGColorSpaceRef
指定颜色空间。但是,您可以传递的options
字典也允许您设置某些颜色空间参数。来自Apple's documentation:
kCIContextOutputColorSpace
在渲染之前用于图像的颜色空间的键 在上下文中。默认情况下,Core Image使用GenericRGB颜色 空间,使颜色与系统匹配。你可以指定一个 通过提供Quartz 2D CGColorSpace提供不同的输出颜色空间 对象(CGColorSpaceRef)。 (参见Quartz 2D Programming Guide for 有关创建和使用CGColorSpace对象的信息。)
kCIContextWorkingColorSpace
用于图像操作的色彩空间的键。默认情况下, Core Image假设处理节点是每像素128位, 线性光,预乘RGBA浮点值使用 GenericRGB色彩空间。您可以指定不同的工作颜色 通过提供Quartz 2D CGColorSpace对象(CGColorSpaceRef)来提供空间。 请注意,工作色彩空间必须基于RGB。如果你有YUV 您可以使用数据作为输入(或非基于RGB的其他数据) ColorSync用于转换为工作色彩空间。 (见石英 2D编程指南,了解有关创建和使用的信息 CGColorSpace对象。)
我的问题是,这些不同的色彩空间参数如何相互作用?
我的假设是使用上面的colorspace:
参数创建带有颜色空间的CIContext与使用kCIContextOutputColorSpace
字典中的options:
设置颜色空间相同。那是对的吗?如果没有,每个参数意味着什么?
如果是这样,那么如果使用colorspace:
参数以及kCIContextOutputColorSpace
字典中的options:
键设置颜色空间会发生什么?有人会覆盖另一个吗?还有其他一些行为吗?