PHP Imagick CMYK PDF转换为JPG

时间:2012-01-10 10:18:43

标签: php image pdf cmyk

我使用Imagick将pdf转换为JPG。问题是pdf是CMYK格式,结果jpg的颜色与pdf的颜色略有不同。我使用以下代码来实现结果:

$filelist = array("D3807797-8425-5-1_40.pdf[2]","D3807797-8425-5-1_40.pdf[3]");

$all = new Imagick();

foreach($filelist as $file){
    $im = new Imagick($file);       
    $all->addImage($im);

}

$all->resetIterator();
$combined = $all->appendImages(true);


$combined->setImageFormat("jpg");
$combined->writeImage("test.jpg");

我也尝试过这个

的linux命令
$cmd = "gm convert -density 150x150 {$pdf}[2] {$pdf}[3] -append -quality 100 {$image}";
exec($cmd)

我得到的结果相同。

有人可以帮我解决这个问题吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我不能说明确有什么不同(我认为图像与pdf之间没有太大区别)。但很有可能是用于将CMYK通道转换为RGB的转换例程。 PDF使用以下公式:

  • 红色= 1 - 分钟(1,青色+黑色)
  • green = 1 - min(1,magenta + black)
  • 蓝色= 1 - 分钟(1,黄色+黑色)

还有其他公式会产生不同的结果,也许您的工具使用的转换不是PDF标准中规定的转换。

请注意,在指定的PDF文件中,我确实看到使用DeviceRGB和DeviceCMYK;一切都是基于矢量的,没有图像存在。