CMYK图像使用TCPDF变为负数

时间:2014-05-19 01:37:41

标签: php pdf pdf-generation tcpdf cmyk

使用TCPDF生成包含CMYK PNG文件的PDF图像时出现问题。

系统允许用户上传照片,可以是JPG,GIF或PNG。必要时,ImageMagick会将这些图像从RGB转换为CMYK。然后将图像上传到文件服务器(Amazon S3)。

显示时,图像在“预览”页面上以HTML格式显示在屏幕上,单击按钮可生成PDF。

PDF是图像变为负值的点(颜色反转)。据我所知,图像保持预期,直到TCPDF将图像插入文档:

$tcpdf->Image($path_to_image, 0, 3.5, '42', '22', $file_extension, '', '', false, 300, '', false, false, 0, false, false, false);

enter image description here ----> enter image description here

文件类型为PNG,扩展名为png。颜色配置文件是CMYK。在浏览器中打开时,图像看起来很好。

我也无法在我的本地开发环境中复制它,它似乎只发生在实时网站上,这使得复制起来更加困难。这似乎只发生在PNG文件中。

this article的OP在他的一个咆哮帖子中传递了这个问题,但似乎没有解决它。

是否有人遇到此问题并找出解决方法?我猜它发生在TCPDF(v5.9.103)类的某个地方,因为源文件很好。

3 个答案:

答案 0 :(得分:7)

嗯,除非维基百科被误导,否则就没有CMYK png这样的东西。

这是维基百科的摘录:

  

PNG设计用于在互联网上传输图像,而不是专业品质的打印图形,因此不支持非RGB颜色空间,如CMYK。

我的猜测是浏览器不关心png的颜色配置文件,它们总是“看到”它是RGB。我假设您设置TCPDF以在CMYK中输出PDF,并且因为.png文件不支持CMYK ...

您是否曾尝试将其转换为.tiff(假设您需要保留Alpha通道),然后将其转换为带Imagemagick的CMYK,然后再将其转换为TCPDF?

答案 1 :(得分:3)

我对TCPDF一无所知,但我还没有尝试过CMYK PNG文件。

但是当我将对CMYK JPEG文件的支持添加到PDFsharp时,我不得不为/DECODE颜色空间的JPEG图像添加值为[1 0 1 0 1 0 1 0]的{​​{1}}参数,以便正确显示Adobe Reader。

我认为CMYK PNG文件需要相同的参数才能正确显示(而不是反转)。

RGB颜色的字节值255非常明亮,CMYK颜色非常暗。似乎Adobe Reader需要一个提示来正确处理这个问题。 RGB是加法的,CMYK是减法的。

Adob​​e PDF Reference撰写有关DeviceCMYK色彩空间的内容:

  

请注意,这些数字的意义与RGB颜色的意义相反   组件。

答案 2 :(得分:-1)

.png无法使用CMYK颜色配置文件尝试使用 .jpg 。最快的解决方法是

_followUserLocation = showsUserLocation;