CIContext的颜色空间选项

Cut*_*low 14 macos core-image quartz-graphics

使用以下内容创建Core Image CIContext时:

contextWithCGLContext:pixelFormat:colorSpace:options:
Run Code Online (Sandbox Code Playgroud)

您可以使用a指定颜色空间CGColorSpaceRef.但是,options您可以传递的字典还允许您设置某些颜色空间参数.来自Apple的文档:

kCIContextOutputColorSpace

在将图像渲染到上下文之前用于图像的颜色空间的键.默认情况下,Core Image使用GenericRGB颜色空间,该颜色空间与系统保持颜色匹配.您可以通过提供Quartz 2D CGColorSpace对象(CGColorSpaceRef)来指定不同的输出颜色空间.(有关创建和使用CGColorSpace对象的信息,请参阅"Quartz 2D编程指南".)

kCIContextWorkingColorSpace

用于图像操作的颜色空间的键.默认情况下,Core Image假定处理节点是128位/像素,线性光,使用GenericRGB色彩空间的预乘RGBA浮点值.您可以通过提供Quartz 2D CGColorSpace对象(CGColorSpaceRef)来指定不同的工作色彩空间.请注意,工作色彩空间必须基于RGB.如果您有YUV数据作为输入(或其他非基于RGB的数据),您可以使用ColorSync函数转换为工作色彩空间.(有关创建和使用CGColorSpace对象的信息,请参阅"Quartz 2D编程指南".)

我的问题是,这些不同的色彩空间参数如何相互作用?

我的假设是,与使用所设置的色彩空间创建CIContext colorspace:以上参数是一样的设置使用的色彩空间kCIContextOutputColorSpaceoptions:字典.那是对的吗?如果没有,每个参数意味着什么?

如果是这样,那么如果使用colorspace:参数和字典中的kCIContextOutputColorSpace键设置颜色空间会发生什么options:?有人会覆盖另一个吗?还有其他一些行为吗?