ImageMagick:convert-im6.q16: no images defined

Interestingly enough ImageMagick under 19.04 (and other Ubuntu releases!) disables many ghostscript format types. This can be seen in this snippet from /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" />

Of course I have added the arrow to catch your attention :). Modify this arrowed line to:

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

You can use your favourite text editor to accomplish this, using elevated privileges, or perhaps simply use the following sed one-liner:

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

And then all should be well, I have tested this comprehensively on my own 19.04 VM where the conversion you are after works flawlessly...

If you wish to change the settings back to the default the following one liner will restore the backup file created in the run with sed:

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

How cool is the command line!


Another reason for getting that same error is that the source images are too wide, too tall or too heavy.

The /etc/ImageMagick-6/policy.xml file controls what is acceptable as an image. Maximum width and height are set like this:

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

10KP stands for 10000 pixels. If your image is larger than that running identify will not show the image info in the terminal and the image is basically out of reach for Image Magick.

Other common properties that affect images being available or not are: memory, map, area and disk.

Here the document describing policy.xml: https://imagemagick.org/script/security-policy.php