如何在没有抗锯齿的情况下在命令行上将 svg 导出为 png

how to export svg to png on the command line without antialiasing

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

在 inkscape gui 中,我可以 select 这作为一个选项。

但是,我没有看到任何与抗锯齿相关的 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 以进行批处理的一些帮助。

在 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