Après la mise à niveau ImageMagick
la qualité du texte s'est dégradée lors de la conversion du pdf en jpeg:
Ancienne image
Nouvelle image Commande de conversion: convert foo.pdf foo.jpeg
Ancienne version d'ImageMagick:
[root@home]# convert -version
Version: ImageMagick 6.2.8 05/07/12 Q16 file:/usr/share/ImageMagick-6.2.8/doc/index.html
Copyright: Copyright (C) 1999-2006 ImageMagick Studio LLC
taille des fichiers générés:
-rw-r--r-- 1 root root 139K Apr 2 16:11 foo-0.jpeg
-rw-r--r-- 1 root root 130K Apr 2 16:11 foo-1.jpeg
-rw-r--r-- 1 root root 334K Mar 24 14:27 foo.pdf
Après la mise à niveau d'ImageMagick
[root@home]# convert -version
Version: ImageMagick 6.7.8-10 2012-08-17 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP
taille des fichiers générés:
-rw-r--r-- 1 root root 60K Apr 2 16:11 foo-0.jpeg
-rw-r--r-- 1 root root 55K Apr 2 16:11 foo-1.jpeg
-rw-r--r-- 1 root root 334K Mar 24 14:27 foo.pdf
J'ai essayé d'utiliser antialias
flag:
convert -antialias foo.pdf foo.jpeg
Ce qui n'a rien fait, j'ai essayé de définir une valeur plus élevée quality
:
convert -quality 100 foo.pdf foo.jpeg
convert -density 288 -background white -alpha off foo.pdf -resize 25% foo.jpeg
les deux donnaient des fichiers plus gros et de meilleurs résultats, mais fonctionnaient plus longtemps et avaient une qualité inférieure à l'ancienne version d'ImageMagick.
des conseils?
Je vois le même problème avec votre exemple de fichier. Il ressemble aux délégués d'ImageMagick pour la conversion PDF peut avoir changé avec la nouvelle installation.
Si tu essayes convert -verbose foo.pdf foo.jpeg
, Est-ce que tu vois -sDEVICE=pngalpha
dans la commande envoyée à gs? Le périphérique pnmraw a été utilisé dans le passé, et revenir à cela semble résoudre le problème pour moi.
Dans ImageMagick's delegates.xml
fichier (qui peut être dans/etc/ImageMagick, mais qui pourrait être ailleurs selon votre configuration), recherchez le decode="ps:alpha"
déléguer une ligne et modifier -sDEVICE=pngalpha
dans la commande pour -sDEVICE=pnmraw
. (Vous pouvez probablement simplement rechercher pngalpha dans le fichier.)
il semble que ce problème à DPI . lors de la conversion de pdf, imagemagick utilisant Ghostscript. vous pouvez sauter en utilisant imagemagick.
$ gs -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dGridFitTT=2 -dUseCropBox -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r200x200 -sDEVICE=jpeg -dJPEGQ=100 -sOutputFile=foo-%05d.jpg foo.pdf
set -r option valeur supérieure. Ghostscript la valeur par défaut est 100DPI.
ou en utilisant l'option de conversion -densité. cette option définit le pdf converti en DPI.
$ convert -density 200x200 foo.pdf foo.jpg
Les fichiers PDF sont des fichiers vectoriels et n'ont pas de taille spécifique. Leur taille est contrôlée en définissant la densité et les unités avant de lire le fichier PDF. Vous pouvez obtenir une meilleure qualité pour la même taille de fichier de sortie souhaitée par suréchantillonnage. Cela signifie rastériser le PDF à une grande taille, puis redimensionnez à la taille réelle souhaitée. Par exemple dans ImageMagick:
convert -units pixelsperinch -density 288 image.pdf -resize 25% output.jpg
La densité nominale si elle est laissée de côté est de 72 dpi. Donc 72 * 4 = 288. Redimensionner ensuite par 1/5 = 25% revient à la même taille par défaut, mais devrait être beaucoup mieux. Modifiez la densité ou redimensionnez pour gérer la qualité et la taille finale comme vous le souhaitez.