【问题标题】:Fogra39 (CMYK color space) to CIEXYZFogra39(CMYK色彩空间)到CIEXYZ
【发布时间】:2016-01-25 10:08:18
【问题描述】:

我想知道是否存在将特定 CMYK 颜色空间(比如说 FOGRA39)的颜色转换为 CIEXYZ 的方法。 我知道如何将 sRGB 转换为 CIEXYZ,因为互联网上有许多“操作方法”。 但我从未找到类似的FOGRA39(或任何其他印刷色彩空间)的变换方程。 有人有经验可以和我分享吗? 谢谢。

【问题讨论】:

    标签: colors rgb equation cmyk


    【解决方案1】:

    简答

    这些色彩空间转换没有被描述为公式,而是(大部分)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)。然而,具体情况取决于一个目标平台和一个打算使用的编程语言。

    【讨论】:

    • 感谢您的复杂回答。我知道变换方程的原因是开发一种工具,允许制图师准备色调之间指定颜色距离的配色方案。 (这或多或少是理论上的工作)。我已经为 sRGB http://eyetracking.upol.cz/color/ 做到了,我也希望为 Fogra 做到这一点。但仍然不知道如何...... :-(
    • 您需要独立于平台的解决方案吗?或者专门针对 Mac/Windows/Linux 的解决方案是否足够(如果有,是什么平台)?
    • 不确定,我是否理解您为什么要询问平台 :) 但我会说 - 独立解决方案...
    • 我的意思是你的工具只能在 Windows 上运行吗?还是仅在 Mac 上?仅限Linux?或者您需要一个可以在多个操作系统上运行的工具? (我问是因为这会影响使用什么 API 来处理 ICC 配置文件。)
    • 啊,我更喜欢设备独立的解决方案。现在它是用 PHP 完成的,因此可以通过任何 Web 浏览器访问...