我知道这个问题之前已经被问过,但它并没有解释太多,因为我没有在那里发表评论的声誉,所以我问了这个问题。
上述线程中提供的答案检索了 rg 和 b 值,但我不知道找到的值是否显示 CMYK 的哪一部分(据我所知,在渲染所有值后都将转换为 RGB)。
我需要首先确定 pdf 文件中使用的颜色系统,我现在明白 CMYK 和 RGB 可以在单个文件中同时使用。所以我需要在我的 C# 应用程序中分析 pdf 文件,并在需要时找到一种将 CMYK 部分转换为 RGB 的方法。
我知道这个问题之前已经被问过,但它并没有解释太多,因为我没有在那里发表评论的声誉,所以我问了这个问题。
上述线程中提供的答案检索了 rg 和 b 值,但我不知道找到的值是否显示 CMYK 的哪一部分(据我所知,在渲染所有值后都将转换为 RGB)。
我需要首先确定 pdf 文件中使用的颜色系统,我现在明白 CMYK 和 RGB 可以在单个文件中同时使用。所以我需要在我的 C# 应用程序中分析 pdf 文件,并在需要时找到一种将 CMYK 部分转换为 RGB 的方法。
这是一个非常广泛的问题,如果您至少阅读 PDF 规范的一部分,对您来说会更好。让你尝尝我为什么这么说...
PDF 和色彩空间
1) PDF 可以包含广泛的颜色空间
- 设备颜色空间,例如 RGB、CMYK 和灰色
- 抽象颜色空间,例如 Lab
- 基于 ICC 配置文件的颜色空间,例如基于 ICC 的 RGB、基于 ICC 的 Lab,...
- 命名或特殊颜色空间,例如分离、设备 N 和 N 通道
(我省略了一些迷人的颜色空间,例如图案和阴影)
2) 上述所有颜色空间都可以在单个 PDF 文件中使用。当您的 PDF 文件符合某些 ISO 标准(例如 PDF/A、PDF/X...)时,它必须遵守限制色彩空间数量的规则,但一般来说,单个 PDF 中允许所有色彩空间。
3) 使用 PDF 文件的位置决定了如何处理这些色彩空间。如果您想使用 CMYK 墨水打印到桌面打印机,则需要将所有这些色彩空间转换为 CMYK。如果您在屏幕上查看 PDF 文件,就会将所有这些色彩空间转换为 RGB。
转换颜色
是的,您可以从 CMYK(以及我提到的所有其他颜色空间)转换为 RGB。但是,如果你想正确地做到这一点,这听起来可能要困难得多。作为一个例子看看这个网站:http ://www.rapidtables.com/convert/color/cmyk-to-rgb.htm
它包含用于此转换的快速且易于使用的公式:
R = 255 × (1-C) × (1-K)
G = 255 × (1-M) × (1-K)
B = 255 × (1-Y ) × (1-K)
这将起作用,但实际上您需要一个使用 ICC 配置文件(用于表征色彩空间)的引擎(例如 LittleCMS)来进行正确的转换。