2012-01-10 2 views
1

Я использую Imagick для преобразования PDF в JPG. Проблема заключается в том, что формат pdf находится в формате CMYK, а цвета, получаемые в результате jpg, немного отличаются от цветов в формате pdf. Я использую следующий код для достижения результата:PHP Imagick CMYK PDF конвертировать в JPG

$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"); 

Я также попробовал команду Линукс для этого

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

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

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

+1

«Немного разные» звуки, как ожидалось, при преобразовании из CMYK в RGB. Можете ли вы показать пример? У изображений в PDF есть цветные профили? –

+0

@Pekka, я отредактировал и разместил ссылку на pdf и изображения. – Centurion

+0

CMYK для RPG не может быть выполнен на 100% точным. Лучшее, что вы можете сделать на своем сайте, - это сделать цвета примечаний, которые могут отличаться, и ссылку на PDF. –

ответ

0

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

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

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

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

Смежные вопросы