Will Roe's blog

Anaλysis Paraλysis » Archives

If you are trying to read SVGs and convert them (through STDIN/STDOUT, from a script for example), like this:

cat test.svg | convert svg: png:- > test.png

And you get this error:

Error reading SVG:
convert: delegate failed `"rsvg-convert" -o "%o" "%i"' @ error/delegate.c/InvokeDelegate/1058.
convert: unable to open image `/tmp/magick-Oj094Z9n':  @ error/blob.c/OpenBlob/2587.
convert: unable to open file `/tmp/magick-Oj094Z9n':  @ error/constitute.c/ReadImage/571.
convert: missing an image filename `png:-' @ error/convert.c/ConvertImageCommand/3011.

Then you need to install (on Ubuntu anyway):

apt-get install libmagickcore4-extra

I had to strace the convert command to find out that it was looking for a missing file. This is from the strace output:

stat("/usr/lib/ImageMagick-6.6.9/modules-Q16/coders/svg.la", 0x7fffe6cace90) = -1 ENOENT (No such file or directory)

Words cannot describe how I feel about Imagemagick right now.

Note to self: install this required package (stupidly called “-extra”).

Also note to self: avoid Imagemagick like the plague.