2012-01-10 5 views
1

J'utilise Imagick pour convertir le pdf en JPG. Le problème est que pdf est au format CMJN et que les couleurs du fichier jpg résultant sont légèrement différentes de celles du pdf. J'utilise le code suivant pour obtenir le résultat:PHP Imagick CMYK PDF convertir en 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"); 

J'ai essayé aussi une commande linux pour cette

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

Et j'obtenir le même résultat.

Quelqu'un pourrait m'aider avec ce problème? Merci d'avance.

+1

"Légèrement différent" sonne comme prévu lors de la conversion de CMJN en RVB. Pouvez-vous donner un exemple? Les images du PDF ont-elles des profils de couleurs joints? –

+0

@Pekka, j'ai édité et mis le lien vers le pdf et les images. – Centurion

+0

CMJN à RPG ne peut pas être fait à 100% précis. Le mieux que vous pouvez faire sur votre site est de faire une note les couleurs peuvent différer, et un lien vers le PDF aussi. –

Répondre

0

Je ne peux pas dire définitif ce qui est différent (pour ma part, je ne vois pas beaucoup de différence entre l'image et le pdf). Mais une bonne possibilité est la routine de conversion utilisée pour convertir les canaux CMJN en RVB. PDF utilise la formule suivante:

  • rouge = 1 - min (1, cyan + noir)
  • vert = 1 - min (1, magenta + noir)
  • bleu = 1 - min (1, jaune + noir)

Et il existe d'autres formules donnant des résultats différents, peut-être que la conversion utilisée par votre outillage n'est pas celle prescrite dans la norme PDF.

Notez que dans le fichier PDF spécifié, je vois que DeviceRGB et DeviceCMYK sont utilisés; tout est basé sur le vecteur, aucune image n'est présente.

Questions connexes