使用ImageMagick将SVG转换为具有抗锯齿function的透明PNG

我想将SVG图像转换为具有透明背景和反锯齿边缘(使用半透明像素)的PNG文件。 不幸的是,我不能让ImageMagick做反锯齿,边缘总是看起来很糟糕。 这是我的尝试:

convert +antialias -background transparent in.svg -resize 25x25 out.png 

任何想法或不同的命令行工具,我可以使用?

Inkscape将会这样做:

 inkscape \ --export-png=out.png --export-dpi=200 \ --export-background-opacity=0 --without-gui in.svg 

作为一个侧面说明,我发现获得透明度有点棘手。 我不是使用透明的 ,而是不使用透明的

 convert -background none in.svg out.png 

其实,阅读imagemagick文档:

-antialias

绘制字体和线条时,启用/禁用抗锯齿像素的渲染。 默认情况下,对象(例如文本,线条,多边形等)在绘制时是抗锯齿的。 使用+ antialias禁用抗锯齿边缘像素的添加。 这会减less
添加到图像的颜色数量只是直接绘制的颜色。 也就是说,绘制这样的对象时不会添加混合的>颜色。

+ antialias将确实禁用antialiasing。

我学习如何做到这一点是从这里find的方法: 如何将.eps文件转换为高品质的1024×1024 .jpg?

这与@ halfer用inkscape解决scheme的想法是一样的 – 先插入DPI – 但是你可以使用-density选项在imagemagick完成同样的事情。

 convert -density 200 in.svg -resize 25x25 -transparent white out.png