【发布时间】:2016-01-25 10:08:18
【问题描述】:
我想知道是否存在将特定 CMYK 颜色空间(比如说 FOGRA39)的颜色转换为 CIEXYZ 的方法。 我知道如何将 sRGB 转换为 CIEXYZ,因为互联网上有许多“操作方法”。 但我从未找到类似的FOGRA39(或任何其他印刷色彩空间)的变换方程。 有人有经验可以和我分享吗? 谢谢。
【问题讨论】:
我想知道是否存在将特定 CMYK 颜色空间(比如说 FOGRA39)的颜色转换为 CIEXYZ 的方法。 我知道如何将 sRGB 转换为 CIEXYZ,因为互联网上有许多“操作方法”。 但我从未找到类似的FOGRA39(或任何其他印刷色彩空间)的变换方程。 有人有经验可以和我分享吗? 谢谢。
【问题讨论】:
简答
这些色彩空间转换没有被描述为公式,而是(大部分)ICC 配置文件(.icc 文件)中的查找表。
更长的答案
某些颜色空间中的颜色值通过相对简单的封闭式表达式与其他颜色空间相关联。众所周知的例子是你提到的 XYZ 和 Lab 之间的关系,以及 sRGB 和 XYZ 之间的关系。相应的变换公式通常是从色彩理论考虑得到的。
另一方面,对应于实际或理想化的打印过程(如FOGRA39)的色彩空间是通过进行实际的打印实验来表征的。这是通过在受控情况下在被分析的设备(例如印刷机)上打印大量不同的色块来完成的,并使用光谱仪测量生成的打印色块的颜色。
这些测量不会产生一个简单的颜色空间之间转换的公式,而是一个包含大量颜色值对的表格:已知的印刷油墨量(例如 CMYK)与测量的颜色。然后,此颜色配置文件表通常以标准化(文件)格式存储:ICC profile。这是ICC profile for FOGRA39。 (实际上,虽然查找表是典型 ICC 配置文件的重要组成部分,但 ICC 配置文件还支持参数曲线和矩阵变换来进行色彩空间转换。)
对于大多数用户来说,ICC 文件格式太复杂而无法解析和解释,色彩管理太麻烦而无法从头开始实现。如果您需要执行与 ICC 配置文件表示的颜色空间之间的颜色转换,通常使用操作系统或第三方库提供的颜色管理工具。
当今使用的几乎所有颜色管理系统 (CMS) 都支持 ICC 配置文件,并且它们的 API 支持使用 ICC 配置文件进行颜色转换。
主要平台 Mac 和 Windows 都有自己的颜色管理系统和 API 可供您使用,并且在 Linux 上也可以使用开源解决方案(例如 little cms)。然而,具体情况取决于一个目标平台和一个打算使用的编程语言。
【讨论】: