【问题标题】:How to convert a folder with SVG files to PNG with inkscape linux?如何使用inkscape linux将包含SVG文件的文件夹转换为PNG?
【发布时间】:2019-10-04 02:50:33
【问题描述】:

我的 WordPress 安装中的图像文件夹中有数千个 SVG 文件,我现在想将所有图像转换为 PNG 以显示它们,而不是在我的网站上显示 SVG 文件。我想使用inkscape 来对图像进行一些良好的压缩。

如何将整个文件夹转换为具有给定高度的 PNG 文件,其中所有图像都具有与以前相同的名称? 像 test49.svg 将是 test49.png。

我尝试了一些带有 PNG 后备选项的 WordPress 插件,但没有成功。

【问题讨论】:

    标签: linux svg png imagemagick-convert inkscape


    【解决方案1】:

    您可以使用 Imagemagick 处理整个文件夹的 SVG 文件,如果它在您的系统上(至少对于 6.7.9-0 或更高版本),它将把工作卸载到 Inkscape。

    Imagemagick 带有 Linux 系统,也可用于 Mac OSX 或 Windows。

    使用 Imagemagick 6:

    将目录更改为包含 SVG 文件的文件夹,然后

    mogrify -format png -colorspace sRGB -density XXX *.svg
    

    该命令将创建相同的文件名但带有 .png 后缀并将它们放在同一目录中。

    如果您想将 PNG 放在不同的目录中,请创建一个(例如 png 文件夹),然后

    mogrify -format png -path path_to/pngfolder -colorspace sRGB -density XXX  *.svg
    


    该命令会将生成的 PNG 放入文件夹 pngfolder。

    如果在 Imagemagick 7 上,将 magick 放在 mogrify 之前。

    为您想要的任何输出尺寸设置密度。更高版本的 Inkscape 的默认密度为 96,因此如果您希望 PNG 的大小是 SVG 默认渲染的两倍,请使用 2*96=192 等。

    如果您想要默认密度的高质量 PNG,请使用 -density 384 并在其后添加 -resize 25%(其中 384=4*96 和 25%=1/4)

    【讨论】:

    • 感谢您的回答。我试过你的解决方案。不幸的是,PNG文件在进度后看起来已损坏:imgur.com/a/ow5zEyz
    • 发布您的 SVG 文件,我可以对其进行测试。 Imagemagick 可以使用 3 种 SVG 渲染器之一:MSVG/XML、RSVG 委托和 Inkscape。最好的是 Inkscape。如果它在您的系统上,那么 Imagemagick 将使用它。默认是 MSVG/XML - Imagemagick 的内部 SVG 渲染器,这不是很好。更好的是 RSVG 代表。 Imagemagick 安装后可能需要重新安装。您可以通过convert -list format 了解是 MSVG/XML 还是 RSVG。查看 SVG 的行尾。确保您拥有当前版本的 RSVG。
    • 谢谢!它适用于 Inkscape 的一些图像。其他一些仍然存在问题。
    • 如果没有看到失败的图像,我不知道该告诉你什么。 Inkscape 可能并非在所有情况下都有效。这也取决于 SVG 是否以某种方式格式错误。您使用的是当前版本的 Inkscape 吗?
    【解决方案2】:

    标签建议您使用 Inkscape。查看命令行选项,在终端输入“man inkscape”,或访问https://inkscape.org/doc/inkscape-man.html

    要转换单个图像,请执行

    inkscape filename.svg --export-png=filename.png
    

    要转换多张图片,可以将 inkscape 命令与 find 结合使用。

    进入包含 svg 图片的文件夹并执行

    find -name "*.svg" -exec sh -c 'inkscape $1 --export-png=${1%.svg}.png' _ {} \;
    

    如果您仍然需要调整图片大小,请使用 imagemagick 的 mogrify。

    【讨论】:

      【解决方案3】:

      我可以想象编写一个键盘宏是可能的。 首先,弄清楚需要按哪些键来完成一个文件的工作,例如在文件浏览器中按 Enter 键打开,然后 Ctrl-Shift+S 另存为,然后使用 tab 设置所有内容,... 然后编写一个简短的程序,重复触发序列,直到完成所有图像。或者使用允许您输入宏的现有程序。注意在击键之间留出足够的时间来加载。

      或者上网查一下有没有什么转换程序,也可以转换很多文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-31
        • 1970-01-01
        • 1970-01-01
        • 2014-01-25
        • 2014-04-08
        • 2012-09-05
        • 2018-02-14
        • 2019-10-17
        相关资源
        最近更新 更多