图像魔术不转换svg文件为jpg


Image Magick not converting svg file to jpg

我正在使用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只是空白)

请帮我解决这个问题,这样我才能继续做这件事。

这可能是因为JPEG不支持透明度,并且误解了SVG的不透明度。根据ImageMagick论坛上的这篇文章,您可以尝试先用背景颜色将SVG平展,然后将其转换为JPEG。

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

首先,您的SVG文件有错误。在三个圆圈的transform属性之前缺少一个空格。在我修复了ImageMagick(来自Debian的6.6.9-7)之后,它对我来说转换得很好。

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