web-dev-qa-db-fra.com

ImageMagick: convert-im6.q16: aucune image définie

ImageMagick pourrait convertir plusieurs images en un seul pdf.

Comment-puis-je-convertir-une-série-d'images-en-pdf à partir de la ligne de commande-sur-linux

Comment pourrait inverser l'opération?

Convertir un pdf de pages en plusieurs images?

Essayez la solution

$ convert test.pdf test-%02.png
convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
convert-im6.q16: no images defined `test-%02.png' @ error/convert.c/ConvertImageCommand/3258.

gs a été installé

$ gs --version
9.26

Version Ubuntu

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 19.04
Release:    19.04
Codename:   disco
3
Calculus

Fait intéressant, ImageMagick sous 19.04 (et d'autres versions d'Ubuntu!) Désactive de nombreux types de formats ghostscript. Cela peut être vu dans cet extrait de /etc/ImageMagick-6/policy.xml:

  <!-- disable ghostscript format types -->
  <policy domain="coder" rights="none" pattern="PS" />
  <policy domain="coder" rights="none" pattern="EPS" />
  <policy domain="coder" rights="none" pattern="PDF" /> <------- Here!!
  <policy domain="coder" rights="none" pattern="XPS" />

Bien sûr, j'ai ajouté la flèche pour attirer votre attention :). Modifiez cette ligne fléchée pour:

  <policy domain="coder" rights="read | write" pattern="PDF" />

Vous pouvez utiliser votre éditeur de texte préféré pour accomplir cela, en utilisant des privilèges élevés, ou peut-être simplement utiliser le sed one-liner suivant:

Sudo sed -i_bak \
's/rights="none" pattern="PDF"/rights="read | write" pattern="PDF"/' \
/etc/ImageMagick-6/policy.xml

Et puis tout devrait bien se passer, je l'ai testé de manière approfondie par moi-même 19.04 VM où la conversion que vous êtes après fonctionne sans faille ...

Si vous souhaitez redéfinir les paramètres sur la valeur par défaut la ligne suivante restaurera le fichier de sauvegarde créé lors de l'exécution avec sed:

Sudo mv /etc/ImageMagick-6/policy.xml_bak /etc/ImageMagick-6/policy.xml

Comme c'est cool la ligne de commande!

5
andrew.46

Une autre raison pour obtenir cette même erreur est que les images source sont trop larges, trop hautes ou trop lourdes.

Le /etc/ImageMagick-6/policy.xml le fichier contrôle ce qui est acceptable comme image. La largeur et la hauteur maximales sont définies comme suit:

<policy domain="resource" name="width" value="10KP"/>
<policy domain="resource" name="height" value="10KP"/>

10KP représente 10000 pixels. Si votre image est plus grande que celle exécutée, identify n'affichera pas les informations sur l'image dans le terminal et l'image est essentiellement hors de portée pour Image Magick.

Les autres propriétés courantes qui affectent la disponibilité ou non des images sont: memory, map, area et disk.

Voici le document décrivant policy.xml: https://imagemagick.org/script/security-policy.php

0
aBe