将RSVG设置为ImageMagick Ubuntu 16.04的默认代理。

5
我需要使用RSVG代理进行转换。
convert -list format | grep SVG
 MSVG  SVG       rw+   ImageMagick's own SVG internal renderer
  SVG  SVG       rw+   Scalable Vector Graphics (XML 2.9.3)
 SVGZ  SVG       rw+   Compressed Scalable Vector Graphics (XML 2.9.3)


identify -list delegate | grep "svg =" 
        svg =>          "rsvg-convert" -o "%o" "%i"

有没有什么想法可以将其设置为默认的转换选项?

“-list format” 显示了 IM 的内部 SVG 渲染器,但是 “-list delegate” 显示任何 svg 请求都将由 rsvg-convert 处理。因此,我会认为 RSVG 已经是 svg 图像的默认处理程序。您可以通过运行 convert -debug All input.svg output.png | grep rsvg 来验证。 - emcconville
grep 没有起作用,但至少我可以查看调试信息。尽管它太长了,无法将其放入文件中。对我来说这似乎很傻。 - LukePOLO
我遇到了同样的问题。它只在委托列表中显示,而不是以格式显示。 - Lakin Mohapatra
我无法正确地转换SVG。 - Lakin Mohapatra
最简单的解决方案是安装Inkscape,ImageMagick会自动使用它。这也比RSVG更好。 - fmw42
1个回答

10

我是这样让它工作的:

  • 在您的系统上安装 RSVG
  • 使用选项--with-rsvg=yes从源代码配置和安装 ImageMagick

在此处查找更多详细信息: https://gist.github.com/maxivak/1476f7e979879da9f75371a86d5627b5

  1. 检查 ImageMagick 是否支持 SVG
identify -list configure | grep svg

你应该看到类似这样的东西

DISTCHECK_CONFIG_FLAGS  --disable-deprecated  --with-quantum-depth=16  --with-jemalloc=no  --with-umem=no  --with-autotrace=no  --with-gslib=no  --with-fontpath=  --with-rsvg=no  --with-perl=no 

!注意!--with-rsvg=no 意味着 ImageMagick 在您的系统中找不到 rsvg。

  1. 安装 RSVG
sudo apt-get install librsvg2-bin

检查 rsvg 是否正常工作

rsvg-convert my.svg > my.png
  1. 使用选项“--with-rsvg=no”从源代码重新安装ImageMagick
# download
wget https://imagemagick.org/download/ImageMagick.tar.gz

# untar
tar xvzf ImageMagick.tar.gz

# 
cd ImageMagick-7.0.8

# !!! IMPORTANT. option `--with-srvg=yes` !!!

./configure --with-rsvg=yes

#
make

sudo make install

sudo ldconfig /usr/local/lib

  1. 验证ImageMagick是否正确安装并支持SVG格式
/usr/local/bin/identify my.svg

这在使用命令行转换时非常有用。然而,Imagick PHP库仍然使用msvg而不是rsvg。有人成功地通过php的Imagick进行转换吗? - Meglio
1
你在如何使用rsvg与Imagick PHP库的问题上找到了解决方案吗,@Meglio? - Christian Gerdes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接