svg - 如何使用 ImageMagick 将 SVG 转换为 PNG?

标签 svg imagemagick png

我有一个定义大小为 16x16 的 SVG 文件。当我使用 ImageMagick 的转换程序将其转换为 PNG 时,我得到一个 16x16 像素的 PNG,它太小了:

convert test.svg test.png

我需要指定输出 PNG 的像素大小。 -size 参数似乎被忽略,-scale 参数在将 PNG 转换为 PNG 后对 PNG 进行缩放。到目前为止,我使用 -密度 参数得到的最佳结果:

convert -density 1200 test.svg test.png

但我不满意,因为我想以像素为单位指定输出大小,而不进行数学计算密度值。所以我想做这样的事情:

convert -setTheOutputSizeOfThePng 1024x1024 test.svg test.png

那么我在这里必须使用的神奇参数是什么?

最佳答案

在这种情况下,我无法从 ImageMagick 获得良好的结果,但是Inkscape在 Linux 和 Windows 上缩放 SVG 效果很好:

# Inkscape v1.0+
inkscape -w 1024 -h 1024 input.svg -o output.png
# Inkscape older than v1.0
inkscape -z -w 1024 -h 1024 input.svg -e output.png

请注意,您可以省略宽度/高度参数之一,以使其他参数根据输入图像尺寸自动缩放。

以下是使用此命令将 16x16 SVG 缩放为 200x200 PNG 的结果:

enter image description here

enter image description here

关于svg - 如何使用 ImageMagick 将 SVG 转换为 PNG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9853325/

相关文章:

javascript - 我可以使用捕捉修改现有路径上的点吗?

c++ - Imagemagick C++ : Reducing memory usage

html - 这个 HTML5 截屏动画是如何创建的?

Android Studio 1.3 SVG 到 png 的转换

jquery - 带有 SVG onclick 问题的 HTML <div>

android - AnimatedVectorDrawable/ObjectAnimator startoffset 错误?

jquery - SVG 动画完成后如何加载另一个 HTML 页面?

image-processing - Graphicsmagick如何删除透明区域并缩小32位图像的 Canvas 大小

php - 将多个 PDF 文件合并为一个页面 PDF - positioned join using PHP

javascript - Nodejs创建一个里面有文字的PNG图像