php - CMYK/RGB 色彩空间在 pdf 和图像中如何工作,以及它如何影响它们的相互转换?

标签 php pdf rgb imagick cmyk

我有一项任务,需要获取作为打印产品模型的 PDF,并检查其分辨率、大小和色彩空间。我需要使用 Imagick 和 PHP 来完成这个任务。

打印这些 PDF 的打印店只有 CMYK 打印机,因此上传的 PDF 需要有 CMYK 颜色。但我不清楚颜色空间(CMYK/RGB)在 PDF 或 jpeg/png 图像中如何工作。因此,我有几个问题,希望能帮助我更好地理解事情并完成任务:

  1. 据我了解,我们可以绘制对象或将图像添加到 pdf 中,并将其颜色定义为 RGB 或 CMYK,但这如何影响整个 PDF 的色彩空间?

  2. 是否可以在 php 中检查 PDF 的色彩空间,而不将其转换为 jpeg/png?

  3. 如果我在 PDF 中有以 CMYK 或 RGB 颜色空间定义的图像,并使用 Imagick 将 PDF 转换为 jpeg/png,除非 Imagick::transformImageColorspace() 特别提到,转换后的图像中的颜色空间是否保持不变?

  4. 有关颜色空间如何工作、如何定义和检测以及当文件从一种 mime 类型转换为另一种 mime 类型时它们如何受到影响的简短背景信息。

P.S.:我正在将 PDF 转换为 jpeg/png 并检查转换后文件的颜色,如下所示,但无论我使用什么 pdf,它总是给出 false

$img = new imagick(self::$_imgArray[0]);
if($img->getimagecolorspace() == imagick::COLORSPACE_CMYK)
    echo "Image is in CMYK";

最佳答案

I have a task where I need to take PDFs that are mock ups of printing products, and check their resolution, size and colour-space.

PDF 页面没有分辨率(尽管页面上的图像有分辨率)。它确实有一个“物理”尺寸,默认为 Letter 尺寸。 PDF 单位默认为 1/72 英寸。如果 PDF 页面包含纯矢量数据,那么它在任何分辨率下看起来都很棒。

请参阅下文了解更多详细信息,但单个 PDF 页面/文档可以包含灰色、RGB、CMYK、LAB 等颜色空间中的一种或多种。

  1. but how does this affect the colour-space of the entire PDF?

事实并非如此,PDF 本身没有整体色彩空间。通常,PDF 处理器会将所有图形转换为目标色彩空间,例如Chrome 在某些时候会拥有 RGB 的所有内容,因为它正在绘制到屏幕上。

  1. Is it possible to check the colour-space of a PDF in php, without converting it jpeg/png?

当然,尽管单个 PDF 可能包含灰度、RGB、CMYK、实验室、分色等。同样,PDF 文件中不存在单一颜色空间。

  1. If I have images in a PDF defined in either CMYK or RGB colour-space and convert the PDF to jpeg/png with Imagick, does the colour-space remain the same in the converted image unless specifically mentioned by Imagick::transformImageColorspace()?

这取决于进行转换的软件。由于 PNG 不支持 CMYK,因此至少任何 CMYK 都会被转换。到底会发生什么取决于软件、设置、目标输出格式和支持的内容。

  1. A short background information on how colour-spaces work, how they are defined and detected and how they are affected when the file is converted from one mime-type to another.

请参阅此处第 8.6 节:https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf 这是另一个很好的链接 https://www.color-management-guide.com/color-spaces.html

关于php - CMYK/RGB 色彩空间在 pdf 和图像中如何工作,以及它如何影响它们的相互转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52623201/

相关文章:

pdf - Applescript:用于 Appleworks 递归打印为 PDF 的 GUI 编程

java - 如何在 Java 中创建 X% 百分比的灰色?

Python - 使用由 X、Y 位置定义的 RGB 值创建颜色图

python - 从 map 上猜测 rgb 渐变?

php - 我的双线性插值算法有什么问题?

php - 使用 Fat Free Framework 从 SQL 创建完整的选择下拉列表

php - MongoDB:集合中的重复文档

java - 如何获取带标签的pdf中标签的页码

php - Mysqli 插入不工作。没有错误弹出

java - pdfptable 中的新行