【问题标题】:Identify RGB and CMYK in a PDF file识别 PDF 文件中的 RGB 和 CMYK
【发布时间】:2015-09-20 18:58:59
【问题描述】:

I know this question has been asked before 但它并没有解释太多,而且我没有在那里发表评论的声誉,所以我在问这个问题。

上述线程中提供的答案检索 rg 和 b 值,但我不知道找到的值是否显示 CMYK 的哪一部分(据我了解,在渲染后所有值都转换为 RGB )。

我需要首先确定pdf文件中使用的颜色系统,我现在明白了CMYK和RGB可以在一个文件中同时使用。所以我需要在我的 C# 应用程序中分析 pdf 文件,并在需要时找到一种将 CMYK 部分转换为 RGB 的方法。

I learned that conversion can be done using ABCDpdf.

【问题讨论】:

标签: c# .net pdf pdfbox dynamicpdf


【解决方案1】:

这是一个非常广泛的问题,如果您至少阅读 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)来进行正确的转换。

【讨论】:

  • 感谢您的转换公式真的很有帮助。但问题是我需要首先确定pdf中的哪些对象是cmyk,哪些是rgb或灰度。我在任何地方都没有找到任何解决方案,我了解不同的色彩空间及其需求,但我不明白如何在 pdf 中识别这些方案
  • "如果您至少阅读部分 PDF 规范对您来说会更好" 您这样做了吗?这并不神奇——PDF 规范中对它进行了非常明确的定义。里面有一章专门介绍色彩空间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 2020-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多