PHP Imagick CMYK PDF конвертировать в JPG - PullRequest
1 голос
/ 10 января 2012

Я использую 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 голосов
/ 11 января 2012

Я не могу точно сказать, что отличается (я, например, не вижу большой разницы между изображением и PDF).Но хорошей возможностью является процедура преобразования, используемая для преобразования каналов CMYK в RGB.PDF использует следующую формулу:

  • красный = 1 - мин (1, голубой + черный)
  • зеленый = 1 - мин (1, пурпурный + черный)
  • синий = 1 - мин (1, желтый + черный)

И есть другие формулы, дающие разные результаты, возможно, преобразование, используемое вашим инструментом, не является предписанным в стандарте PDF.

Обратите внимание, что в указанном файле PDF я вижу, что используются и DeviceRGB, и DeviceCMYK;все на векторной основе, изображения отсутствуют.

...