2012-11-07 16 views
9

sto conversione di vari file PDF caricati dagli utenti finali in immagini usando seguente comandoImageMagick cambia colore durante la conversione di PDF in immagini

-density 140 -limit memory 64MB -limit map 128MB [pdffile] page.png 

Ecco il risultato. Sulla destra abbiamo il PDF originale e l'immagine in uscita a sinistra. Come puoi vedere i colori sono notevolmente diversi.

Che cosa potrebbe causare questo e come risolverlo?

image

risposta

7

prova seguente comando:

-density 140 -limit memory 64MB -limit map 128MB -colorspace RGB [pdffile] page.png 
+0

che lo ha fatto, grazie –

+1

Nel caso in cui non funziona per voi, provate 'sRGB' invece di' RGB'. – joeytwiddle

0

Utilizzare l'opzione -resample:

-density 140 -resample 100 -limit memory 64MB -limit map 128MB [pdffile] page.png 
3

Edit: Ho poi scoperto che ImageMagick può farlo bene, ho solo bisogno di utilizzare -colorspace sRGB

mio comando finale era:

convert -density 560 -limit memory 64MB -limit map 128MB \ 
     -colorspace sRGB [pdffile] -scale 25% page.png 

Il sovracampionamento e ridimensionamento è stato quello di contrastare i poveri anti-aliasing di seguito indicate.

prima di scoprire che, qui era la mia soluzione in precedenza ...


Nel mio caso i colori prodotti da ImageMagick di convert erano troppo saturi, del tutto simili a quelli in questione. Stavo cercando di convertire this file usando IM 6.7.7.10-6ubuntu3.

  • -resample 100 non ha fatto alcuna differenza.

  • -colorspace RGB sembrava produrre saturazioni più accurate, ma l'intera immagine era più scura di quanto avrebbe dovuto.

Curiosamente, this suggestion da usare GhostScript invece di ImageMagick per la conversione, prodotta molto vicino ai colori corretti:

gs -q -sDEVICE=png16m -dSubsetFonts=true -dEmbedAllFonts=true \ 
     -sOutputFile=page.png -r200 -dBATCH -dNOPAUSE [pdffile] 

(Il suggerimento originale passò l'opzione -dUseCIEColor, ma nel mio caso questo è apparso per ridurre la gamma: i pixel chiari erano buoni, ma i pixel scuri erano troppo scuri, quindi l'ho rimosso.)

Dopo di ciò, l'unica cosa che mi dava fastidio era che l'anti-aliasing erano un po 'fuori dallo in alcuni punti (particolarmente visibili sulle curve che superano i 45 gradi). Per migliorarlo, ho creato l'output a quattro volte la risoluzione richiesta, per poi ridimensionarlo in seguito, rendendo questi errori quasi impercettibili. Nota che ho dovuto usare ImageMagick -scale per questo, e non-geometry o -resize, per evitare bicubic ringing effects.

-1

Le immagini seguenti mostrano come l'anti-aliasing migliora se si campiona a una risoluzione più elevata e quindi si ridimensiona.

Anche se 1120 è stato leggermente migliore qualità rispetto a 560, c'è voluto molto tempo per convertire, quindi credo che sceglierò 560 per un buon tempo: la qualità trade-off.

-colorspace sRGB -density 140

enter image description here

-colorspace sRGB -density 280 -scale 50%

enter image description here

-colorspace sRGB -density 420 -scale 33.3333%

enter image description here

-colorspace sRGB -density 560 -scale 25%

enter image description here

-colorspace sRGB -density 1120 -scale 12.5%

enter image description here

(È più facile vedere la differenza se si scaricano le ultime due immagini e capovolgere tra di loro nel vostro visualizzatore di immagini preferito. O scorrere verso l'alto l'elenco delle immagini, anziché verso il basso. Si dovrebbe sembrare che diventino progressivamente più brutta.)

Problemi correlati