我想将透明背景和反锯齿边缘(使用半透明像素)的SVG图像转换为PNG文件。不幸的是,我不能让ImageMagick去做抗锯齿,边缘总是看起来很糟糕。这是我的尝试:使用ImageMagick将SVG转换为透明PNG使用ImageMagick
convert +antialias -background transparent in.svg -resize 25x25 out.png
任何想法或不同的命令行工具,我可以使用?
我想将透明背景和反锯齿边缘(使用半透明像素)的SVG图像转换为PNG文件。不幸的是,我不能让ImageMagick去做抗锯齿,边缘总是看起来很糟糕。这是我的尝试:使用ImageMagick将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
其实,阅读文档的ImageMagick:
-antialias
启用绘制字体和线条时抗锯齿像素渲染/禁用。 默认情况下,绘制时对象(例如文本,线条,多边形等)是抗锯齿的。使用 + antialias禁用抗锯齿边缘像素的添加。然后,这会将添加到图像的颜色数量减少到仅仅直接绘制的颜色数量。也就是说,绘制这样的对象时不添加混合>颜色。
+ antialias确实会禁用抗锯齿功能。
作为一个侧面说明,我发现获得透明度有点棘手。而不是使用透明,我不得不使用无。
convert -background none in.svg out.png
至少在这个时候(6.8.6),它也适用于_transparent_。 – 2014-01-09 10:43:04
“无”和“透明”都为我创建了不透明的白色背景。不透明。我在Mac上使用6.8.8-3 – petrsyn 2014-03-21 13:35:30
'-background none'为我工作,ImageMagick 6.8.6-6在mac上 – commonpike 2014-03-29 17:58:00
我学会了如何做到这一点是从方法论发现这里的道路:How to convert a .eps file to a high quality 1024x1024 .jpg?
这是相同的思路@ halfer与inkscape
解决方案--to第一抬高DPI - 但你可以使用-density
选项在imagemagick
中完成同样的操作。
convert -density 200 in.svg -resize 25x25 -transparent white out.png
我发现的第一个解决方案保留了一些SVG的调色板,例如, Apache NiFi的徽标(https://nifi.apache.org/assets/images/apache-nifi-logo.svg)。 – timss 2018-03-01 12:09:40