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

8

我希望将一个简单的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机器上进行转换,一切都正常工作。

convert test.svg test.jpg

Windows下的转换

当我在我的Linux服务器(Debian 6.0 ImageMagick 6.6.0)上进行相同的转换时,只得到黑色的线条。

Linux服务器上的转换

我尝试升级我的Linux机器上的最新Imagemagick版本,但是从软件库中没有获取到更新的版本。

但我不确定使用外部图片是否是最新版本的功能,还是配置问题。

感谢任何建议!


你的两台机器上运行 convert --version 命令会输出什么? - Wolfgang Fahl
1
我安装了Version: ImageMagick 6.6.9-7 2012-08-17 Q16版本。你在回答中确认这个版本不如预期运行。 - Michael Klenk
4个回答

5

您可能需要使用以下命令检查您的版本:

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中无法工作...

5

@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

rsvg-convert版本2.40.10似乎无法获取外部图像。 - rzymek

1

如果Debian存储库中没有更新版本,则您的选择如下:

  1. ImageMagick源代码自行编译。指令在这里

  2. 安装预编译的非Debian二进制包(.tar.gz)。

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


0

您也可以尝试使用Apache Batik SVG Rasterizer

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

它可以获取外部图片。


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