Use librsvg / rsvg to convert SVG images with ImageMagick

Questions and postings pertaining to the usage of ImageMagick regardless of the interface. This includes the command-line utilities, as well as the C and C++ APIs. Usage questions are like "How do I use ImageMagick to create drop shadows?".
Post Reply
zoliqua
Posts: 2
Joined: 2014-07-16T05:25:15-07:00
Authentication code: 6789

Use librsvg / rsvg to convert SVG images with ImageMagick

Post by zoliqua »

Hello,

I have a probelem, and I don't know what to do. I asked a question on StackOverflow 2 weeks ago, but nobody has answered yet. Can anybody help me?

All the details are here also: http://stackoverflow.com/questions/2451 ... magemagick

=====

I know this question has several answered version here (like this: http://stackoverflow.com/questions/1159 ... vg-enabled ), but actually I can't find a real solution to my exact problem. My problem is: I have a specific SVG file (and I will generate more) that ImageMagick inside SVG>PNG convertor process doesn't convert perfectly. So I need to change it to **librsvg**, because it does, I tested these 2 lines with different result:
convert test.svg test.png // ( img: http://tinyurl.com/px2lw3v )
rsvg-convert test.svg -o test.png // ( img: http://tinyurl.com/lreu6sk )
I installed HomeBrew. As described here: http://stackoverflow.com/questions/1159 ... vg-enabled I used this code to install ImageMagick `brew install imagemagick --use-rsvg`. I realized that it not installs **librsvg** so I needed to uninstall it and reinstall like this: `brew reinstall imagemagick --with-libsrvg librsvg --use-rsvg` : this installed imagemagick & librsvg together to my mac. BUT doesn't connected them: `convert -list format | grep SVG` resulted as:
> MSVG SVG rw+ ImageMagick's own SVG internal renderer
> SVG SVG rw+ Scalable Vector Graphics (XML 2.9.0)
> SVGZ SVG rw+ Compressed Scalable Vector Graphics (XML 2.9.0)
while this: `convert -list delegate | grep svg` resulted as:
svg => "rsvg-convert" -o "%o" "%i"
I installed & uninstalled & reinstalled them several times & ways but nothing changed and the script `convert test.svg test.png` do it's way without librsvg. I added lines to /usr/local/Cellar/imagemagick/6.8.9-1/lib/ImageMagick/config-Q16/configure.xml with tags but nothing progressed. I don't know what to do and how to connect ImageMagick and force to use different library for `convert test.svg test.png`.

Thank you for your help.

More information:
$ which convert
/usr/local/bin/convert

$ convert -version
Version: ImageMagick 6.8.9-1 Q16 x86_64 2014-05-12 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules
Delegates: bzlib freetype jng jpeg ltdl lzma png xml zlib

$ otool -L $(which convert)
/usr/local/bin/convert:
/usr/local/Cellar/imagemagick/6.8.9-1/lib/libMagickCore-6.Q16.2.dylib (compatibility version 3.0.0, current version 3.0.0)
/usr/local/Cellar/imagemagick/6.8.9-1/lib/libMagickWand-6.Q16.2.dylib (compatibility version 3.0.0, current version 3.0.0)
/usr/local/lib/libfreetype.6.dylib (compatibility version 18.0.0, current version 18.2.0)
/usr/lib/liblzma.5.dylib (compatibility version 6.0.0, current version 6.3.0)
/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/usr/local/lib/libltdl.7.dylib (compatibility version 11.0.0, current version 11.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

$ which rsvg-convert
/usr/local/bin/rsvg-convert

$ otool -L $(which rsvg-convert)
/usr/local/bin/rsvg-convert:
/usr/local/Cellar/librsvg/2.36.3/lib/librsvg-2.2.dylib (compatibility version 39.0.0, current version 39.3.0)
/usr/local/lib/libgdk_pixbuf-2.0.0.dylib (compatibility version 3001.0.0, current version 3001.8.0)
/usr/local/lib/libgio-2.0.0.dylib (compatibility version 4001.0.0, current version 4001.0.0)
/usr/local/lib/libpangocairo-1.0.0.dylib (compatibility version 3601.0.0, current version 3601.5.0)
/usr/local/lib/libpango-1.0.0.dylib (compatibility version 3601.0.0, current version 3601.5.0)
/usr/local/lib/libgobject-2.0.0.dylib (compatibility version 4001.0.0, current version 4001.0.0)
/usr/local/lib/libcairo.2.dylib (compatibility version 11203.0.0, current version 11203.16.0)
/usr/local/lib/libpng16.16.dylib (compatibility version 29.0.0, current version 29.0.0)
/usr/local/lib/libcroco-0.6.3.dylib (compatibility version 4.0.0, current version 4.1.0)
/usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.9.0)
/usr/local/lib/libgthread-2.0.0.dylib (compatibility version 4001.0.0, current version 4001.0.0)
/usr/local/lib/libglib-2.0.0.dylib (compatibility version 4001.0.0, current version 4001.0.0)
/usr/local/opt/gettext/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.2.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
- ImageMagick 6.6.9-1
- Mac OS X 10.9.4

=====

Thanks,
Zoltan
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: Use librsvg / rsvg to convert SVG images with ImageMagic

Post by fmw42 »

I don't know much about Homebrew. I use MacPorts to install my delegates, then I install IM manually from source. This works well. Nevertheless, my suggestions would be start over.

First install librsvg with Homebrew. Then install IM as

brew install imagemagick --with-rsvg

I am not sure if brew uses --use-rsvg or --with-rsvg. But IM typically uses --with-rsvg.

Also you have misspelled librsvg as

brew reinstall imagemagick --with-libsrvg librsvg --use-rsvg

To check if IM recognizes librsvg first see if it is listed with

convert -version

Also a better way is to use

convert -format

and see whether it lists RSVG and its version on the line for SVG.
zoliqua
Posts: 2
Joined: 2014-07-16T05:25:15-07:00
Authentication code: 6789

Re: Use librsvg / rsvg to convert SVG images with ImageMagic

Post by zoliqua »

Thank you for your help. It worked perfectly.

zoliqua
Post Reply