在命令行中调整SVG图像的画布大小

6
我有一堆svg图片(1.svg、2.svg……),想要将它们居中并将画布大小调整为相同值。假设图像1.svg的宽度为600,高度为800,而2.svg的宽度为1000,高度为400。我想将它们都设置为1000x800的画布,并将它们居中。结果是图像不会被重新调整大小,但它们将在两侧留有额外的空间 -> 1.svg仍然是600x800,但在1000x800尺寸的画布中,2.svg将是1000x400,但在1000x800尺寸的画布中。是否可以在命令行中完成?使用inkscape、imagemagick等工具?

1
你可以使用 ImageMagick 来实现,但是由于它是一个光栅图像处理器,因此输出的将是光栅化(位图)图像(即 PNG、GIF 或 JPEG),而不是矢量图像(即 SVG)。这符合你的需求吗? - Mark Setchell
PNG图像绝对没问题,我只需要获得相同大小的画布,并在其中保留原始图像的大小,由于有很多文件,我需要批量处理。 - Dsi
2
我对具有SVG输出的解决方案非常感兴趣。我经常获得一组SVG图标,需要将它们的大小规范化以便于网站集成。 - Jérôme
1个回答

2
您需要使用 -extent 选项来处理 ImageMagick,如下所示:
convert 1.svg -gravity center -background yellow -extent 1000x800 result.png

那么,让我们创建一些图片:

convert -size 600x800! xc:red 1.png
convert 1.png -gravity center -background yellow -extent 1000x800 result.png

这里输入图片描述

或者另一种方式:

convert -size 1000x400! xc:red 2.png
convert 2.png -gravity center -background blue -extent 1000x800 result.png

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接