2011-08-16 48 views
0

我正在使用Image Magick库将.svg文件转换为jpg,但它正在创建一个空白图像。我已经检查了很多论坛,但无法弄清楚它的问题。我有一个文件名为abc.svg,里面有下面的代码;Image Magick没有将svg文件转换为jpg

<?xml version="1.0"?> 
<svg xmlns="http://www.w3.org/2000/svg" width="12cm" height="12cm"> 
<g style="fill-opacity:0.7; stroke:black; stroke-width:0.1cm;"> 
<circle cx="6cm" cy="2cm" r="100" style="fill:red;"transform="translate(0,50)" /> 
<circle cx="6cm" cy="2cm" r="100" style="fill:blue;"transform="translate(70,150)" /> 
<circle cx="6cm" cy="2cm" r="100" style="fill:green;"transform="translate(-70,150)"/> 
</g> 
</svg> 

我想通过以下命令将其转换:

$convert abc.svg abc.jpg

但我得到该文件(即abc.jpg的仅仅是空白)

请帮我带着这个问题,让我可以继续前进。

在此先感谢。

回答

2

这可能是因为JPEG不支持透明度,误解了SVG的不透明度。 According to this post on the ImageMagick forums,您可以尝试先将背景颜色变为平坦,然后将其转换为JPEG。

convert image.svg -background gray -flatten output.jpg 
convert abc.svg abc.jpg 
0

一方面,您的SVG文件有错误。您在三个圈子中的transform属性之前缺少一个空格。在我解决这个问题后,它可以用ImageMagick(6.6.9-7从Debian)转换为我。

但是,当我在ImageMagick中尝试文件时,它不会给我一个空文件。它给出了一些错误,根本没有输出文件。您的SVG文件是否可以在任何其他程序中使用,例如Inkscape? ImageMagick的副本是否处理其他SVG文件?