Bri*_*ian 3 svg png image imagemagick
我正在尝试将SVG转换为PNG.SVG是非方形矩形.我希望图像的纵横比保持不变,因此需要填充图像的范围(透明).
我是OS X Mavericks,10.9.2.
我用3个工具尝试了这个,每个工具都有问题:
convert -background none -resize 200x200 -gravity center -extent 200x200 rect.svg rect-imagemagick.png
Run Code Online (Sandbox Code Playgroud)
开始 -
结束 -
图像是正方形,具有正确的宽高比,但是模糊. 我见过其他用户使用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
Run Code Online (Sandbox Code Playgroud)
rsvg-convert -a -w 200 -h 200 rect.svg > rect-rsvg.png
Run Code Online (Sandbox Code Playgroud)
开始 -
结束 -
图像清晰,正确的宽高比,但我没有看到使其成为方形(扩展图像)的方法.
版:
# rsvg-convert --version
rsvg-convert version 2.40.9
Run Code Online (Sandbox Code Playgroud)
inkscape -z -e rect-inkscape.png -w 200 -h 200 rect.svg
Run Code Online (Sandbox Code Playgroud)
开始 -
结束 -
图像方形清晰,但纵横比不正确.
版:
# 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)
Run Code Online (Sandbox Code Playgroud)
好吧,如果我将两个实用程序结合起来,我意识到这有一个简单的答案:
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
Run Code Online (Sandbox Code Playgroud)
首先转换为PNG rsvg-convert,正确转换但不扩展.然后将imagemagick从PNG扩展到PNG.
| 归档时间: |
|
| 查看次数: |
1124 次 |
| 最近记录: |