Image Magick没有将svg文件转换为jpg

时间:2011-08-16 18:36:17

标签: php cakephp imagemagick

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

<?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 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

首先,您的SVG文件有错误。您在三个圈子中的transform属性之前缺少空格。在修复之后,它可以通过ImageMagick(来自Debian的6.6.9-7)转换为我。

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