And*_*ohr 61 svg png imagemagick inkscape
我想将SVG图像转换为具有透明背景和抗锯齿边缘的PNG文件(使用半透明像素).不幸的是,我不能让ImageMagick做抗锯齿,边缘总是看起来很糟糕.这是我试过的:
convert +antialias -background transparent in.svg -resize 25x25 out.png
Run Code Online (Sandbox Code Playgroud)
我可以使用任何想法或不同的命令行工具?
Mic*_*cah 88
作为旁注,我发现获得透明度有点棘手.而不是使用的透明,我不得不使用无.
convert -background none in.svg out.png
Run Code Online (Sandbox Code Playgroud)
hal*_*fer 55
Inkscape会这样做:
inkscape \
--export-png=out.png --export-dpi=200 \
--export-background-opacity=0 --without-gui in.svg
Run Code Online (Sandbox Code Playgroud)
sle*_*per 16
实际上,阅读imagemagick文档:
-antialias
绘制字体和线条时启用/禁用抗锯齿像素的渲染.默认情况下,对象(例如文本,线条,多边形等)在绘制时是抗锯齿的.使用+ antialias禁用添加抗锯齿边缘像素.然后,这会将
添加到图像的颜色数量减少到直接绘制的颜色.也就是说,在绘制这些对象时不会添加混合>颜色.
在+抗锯齿的确将禁用抗锯齿.
chi*_*NUT 10
我学会如何做到这一点的方法来自这里找到的方法:如何将.eps文件转换为高质量的1024x1024 .jpg?
这与@ halfer的解决方案是一样的inkscape- 用 - 首先提升DPI - 但是你可以在imagemagick使用该-density选项时完成同样的事情.
convert -density 200 in.svg -resize 25x25 -transparent white out.png
Run Code Online (Sandbox Code Playgroud)
添加该-transparent white选项可以解决问题,特别是在我的情况下,因为背景没有完全删除(不幸的是存在光影)。所以我使用恕我直言更清晰的解决方案,完全删除与 ImageMagic 的背景:
convert -channel rgba -background "rgba(0,0,0,0)" in.svg out.png
它通过 RGBA 通道将完全透明的黑色设置为背景。
对我来说适用于 svg 到 png:
convert ${src} \
-transparent white \
-background none \
-resize 345x345 \
res/drawable-xxxhdpi/${dest}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40849 次 |
| 最近记录: |