如何在命令行上将 svg 导出为 png而不使用抗锯齿

问题描述 投票:0回答:2

我需要对 svg 文件进行一些批处理。 SVG 元素都是黑色或白色,我需要单色(黑/白,无灰度)的位图图像。

在 inkscape gui 中,我可以选择此选项。

但是,我没有看到任何与抗锯齿相关的 inkscape cli 选项

librsvg 也是如此,(rsvg-convert) 手册中没有与抗锯齿相关的命令行选项。

第二个想法是导出为 png 图像,然后使用 ImageMagick 对图像进行阈值处理。但是,在我的系统上

Mac OSX catalina (latest)
brew install imagemagick -> 7.0.10-23

当我运行以下命令时,出现错误:

>>> convert test.im.png -channel RGB -threshhold 50% test.im.t.png
convert: unrecognized option `-threshhold' @ error/convert.c/ConvertImageCommand/3112.

鉴于这些问题,正在寻求有关如何在命令行上从黑白 svg 到黑白 png 进行批处理的一些帮助。

svg imagemagick inkscape
2个回答
1
投票

在 IM 7 上,使用 magick,而不是转换。所以尝试一下吧

magick +antialias image.svg -channel RGB result.png

magick image.svg -channel RGB -threshold 50% result.png

如果其中之一有效,那么您可以使用 magick mogrify 处理整个文件夹的文件。请参阅https://imagemagick.org/Usage/basics/#mogrify


0
投票

这似乎将在 inkscape 1.4 版本中添加,截至目前(2024 年 3 月)需要手动编译。 linux ppa 1.3 版本中还没有它。

已编译并测试,效果良好。

新的

--export-png-antialias
命令行选项,您可以将其设置为 0(无)到 3(最佳)

这是显示新版本的源代码:

https://gitlab.com/inkscape/inkscape/-/blob/master/src/actions/actions-output.cpp?ref_type=heads#L315

© www.soinside.com 2019 - 2024. All rights reserved.