使用Imagemagick将SVG转换为JPEG,缺少外部光栅图形

时间:2012-08-09 08:55:44

标签: image svg imagemagick

我想将一个简单的svg图形转换为jpeg图形。这是svg源代码:

<svg style="overflow: hidden; position: relative;" 
  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" 
  width="300" version="1.1" height="200">
     <image x="10" y="10" width="276" height="110" 
     xlink:href="http://images.google.com/intl/de_ALL/images/logos/images_logo_lg.gif"
     stroke-width="1"></image>
  <rect x="0" y="150" height="10" width="300" style="fill: #000000"/>
</svg>

如果我使用ImageMagick 6.7.8对我的Windows XP mashine进行转换,一切正常。

convert test.svg test.jpg

Conversion with windows

如果我在我的linux服务器(Debian 6.0 ImageMagick 6.6.0)上进行相同的转换,只能得到黑线。

Conversion on linux server

我尝试在我的linux mashine上升级到最新的Imagemagick版本,但我没有从存储库中获得更新的版本。

但我不确定使用外部图像是否是较新版本的功能,或者是否是配置问题。

感谢您的任何建议!

4 个答案:

答案 0 :(得分:4)

您可能希望使用

检查您的版本

convert --version

以下版本很乐意进行预期转换:

Version: ImageMagick 6.7.7-0 2012-05-27 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features:  OpenCL

它在当前的macports端口中可用。

此版本:

Version: ImageMagick 6.6.9-7 2012-04-30 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP   

在Ubuntu 12.04中,LTS无效......

答案 1 :(得分:3)

@Wolfgang

我的imagemagick与你的几乎相同。 (发布不一样,但我不认为这会导致问题)

$ convert --version
Version: ImageMagick 6.6.9-7 2014-03-06 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP 

我的系统是:

Distributor ID: Ubuntu
Description:    Ubuntu-Secure-Remix 12.04.1 LTS 31.08.2012
Release:    12.04
Codename:   precise

我已在我的系统中测试过,它可以很好地运行命令。

或者存在另一个命令:

rsvg-convert

可以按类型安装(在Ubuntu中):

apt-get install librsvg2-bin

要将SVG转换为PNG,命令为:

rsvg-convert your_file.svg > your_file.png

答案 2 :(得分:1)

如果Debian存储库中没有更新的版本,您的选项是:

  1. 自己从ImageMagick source code编译。说明为here

  2. 安装pre-compiled non-Debian binary包(.tar.gz)。

  3. 使用Google搜索官方Debian Squeeze(a.k.a。6.0)'backport'存储库。如果幸运的话,可能会有更新的ImageMagick。

答案 3 :(得分:0)

您也可以尝试Apache Batik SVG Rasterizer

java -jar batik-rasterizer.jar samples/batikFX.svg

它确实可以获取外部图像。