使用 RSVG 作为默认委托 ImageMagick Ubuntu 16.04

Luk*_*OLO 5 php ubuntu imagemagick

我需要使用 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"
Run Code Online (Sandbox Code Playgroud)

任何想法如何将其设置为默认转换?

Max*_*vak 9

我让它像这样工作:

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

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

  1. 检查 imagemagick 对 svg 的支持
identify -list configure | grep svg
Run Code Online (Sandbox Code Playgroud)

你应该看到这样的

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 
Run Code Online (Sandbox Code Playgroud)

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

  1. 安装 RSVG
sudo apt-get install librsvg2-bin
Run Code Online (Sandbox Code Playgroud)

检查 rsvg 是否有效

rsvg-convert my.svg > my.png
Run Code Online (Sandbox Code Playgroud)
  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

Run Code Online (Sandbox Code Playgroud)
  1. 验证 ImageMagick 安装与 SVG 一起正常工作
/usr/local/bin/identify my.svg
Run Code Online (Sandbox Code Playgroud)