Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Imagick CMYK PDF转换为JPG_Php_Image_Pdf_Cmyk - Fatal编程技术网

PHP Imagick CMYK PDF转换为JPG

PHP Imagick CMYK PDF转换为JPG,php,image,pdf,cmyk,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-

我使用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)
我得到了同样的结果

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

我无法确定有什么不同(我个人认为图片和pdf之间没有太大区别)。但一个很好的可能性是用于将CMYK通道转换为RGB的转换例程。PDF使用以下公式:

  • 红色=1-分钟(1,青色+黑色)
  • 绿色=1-分钟(1,品红+黑色)
  • 蓝色=1-分钟(1,黄色+黑色)
还有其他公式可以产生不同的结果,也许工具使用的转换不是PDF标准中规定的转换


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

从CMYK转换为RGB时,声音与预期略有不同。你能举个例子吗?PDF中的图像是否附有颜色配置文件?@Pekka,我编辑并放置了PDF和images.CMYK到RPG的链接无法100%准确。在你的网站上,你能做的最好的事情就是做一个备注,颜色可以不同,并且链接到PDF。@Topener这是可能的,但问题是PDF我必须发送到一个地方,但截图不是另一个,但它们必须是相同的。@Centurion问题是CMYK颜色不能映射到RGB 1:1。为了尝试获得类似的结果,需要有一个颜色配置文件。这是相当复杂的正确,不知道该建议什么。。。除了尝试使用颜色配置文件(如果传入数据中有)。