PHP Imagick CMYK PDF конвертировать в JPG

Я использую 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)

И я получаю тот же результат.

Может ли кто-нибудь помочь мне с этой проблемой? Заранее спасибо.


person Centurion    schedule 10.01.2012    source источник
comment
Немного другие звуки, как и ожидалось, при преобразовании из CMYK в RGB. Можете ли вы показать пример? К изображениям в PDF прикреплены цветовые профили?   -  person Pekka    schedule 10.01.2012
comment
@Pekka, я отредактировал и поставил ссылку на pdf и изображения.   -  person Centurion    schedule 10.01.2012
comment
CMYK в RPG нельзя сделать на 100% точным. Лучшее, что вы можете сделать на своем сайте, — это сделать так, чтобы цвета заметок различались, а также ссылка на PDF-файл.   -  person Rene Pot    schedule 10.01.2012
comment
@TopenerВозможно, но проблема в том, что pdf я должен отправить в одно место, а снимок экрана — в другое, но они должны быть одинаковыми.   -  person Centurion    schedule 10.01.2012
comment
@Centurion дело в том, что цвет CMYK нельзя преобразовать в RGB 1: 1. В игре должен быть цветовой профиль, чтобы попробовать и получить похожие результаты. Это довольно сложно сделать правильно, не знаю, что предложить ... Кроме того, попробуйте использовать цветовые профили, если они доступны во входящих данных.   -  person Pekka    schedule 10.01.2012


Ответы (1)


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

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

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

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

person Ritsaert Hornstra    schedule 10.01.2012