2016-01-25 42 views
1

我想将SVG转换为PNG。 SVG是一个非正方形的矩形。我希望图像的高宽比保持不变,因此图像的范围需要填充(透明)。如何将SVG转换为PNG,同时保持宽高比但改变范围?

我在OS X Mavericks,10.9.2上。

我已经与3个工具尝试这样做,各有问题:

随着ImageMagick的:

convert -background none -resize 200x200 -gravity center -extent 200x200 rect.svg rect-imagemagick.png 

START -

enter image description here

END -

图像是正确的正方形但是比较模糊。我见过其他用户使用imagemagick将SVG转换为PNG来报告此问题。我已经升级了imagemagick以使用rsvg(通过brew),这可以在以下版本的代表中看到。

版本:

# convert --version 
Version: ImageMagick 6.9.1-3 Q16 x86_64 2016-01-23 http://www.imagemagick.org 
Copyright: Copyright (C) 1999-2015 ImageMagick Studio LLC 
License: http://www.imagemagick.org/script/license.php 
Features: DPC Modules 
Delegates (built-in): bzlib cairo fontconfig freetype jng jpeg ltdl lzma png rsvg tiff xml zlib 

随着RSVG:

rsvg-convert -a -w 200 -h 200 rect.svg > rect-rsvg.png 

START -

enter image description here

END -

图像清晰并具有正确的宽高比,但我没有看到使其成方形的方式(扩展图像)。

版本:

# rsvg-convert --version 
rsvg-convert version 2.40.9 

使用Inkscape:

inkscape -z -e rect-inkscape.png -w 200 -h 200 rect.svg 

START -

enter image description here

END -

图像正方形且清晰,但纵横比不正确。

版本:

# inkscape --version 
W: AppleCollationOrder setting not found, using AppleLocale. 
Setting LANGSTR from AppleLocale: en 
Overriding empty LANG from /usr/share/locale/locale.alias 
Setting Language: en_US.UTF-8 
Inkscape 0.48.5 r10040 (Jul 12 2014) 

回答

3

好吧,我意识到这有一个简单的答案,如果我结合公用事业两个:

rsvg-convert -a -w 200 -h 200 rect.svg > rect-rsvg.png 
convert -background none -resize 200x200 -gravity center -extent 200x200 rect-rsvg.png rect-correct.png 

首先转换成PNG与rsvg-convert,它正确地转换,但确实不扩展。然后将imagemagick从PNG扩展到PNG。

+0

应该接受你自己的答案! –

相关问题