.svg
在命令行上裁剪文件很简单:
$ inkscape --verb=FitCanvasToDrawing --verb=FileSave --verb=FileClose *.svg
我需要做相反的事情。我想将绘图放入64 x 64
点画布(已在所有.svg
文件中设置)。不幸的是,Inkscape没有提供FitDrawingToCanvas
命令。此外,配件应保持图纸的纵横比。
如果很重要:我正在使用Ubuntu raring。
.svg
在命令行上裁剪文件很简单:
$ inkscape --verb=FitCanvasToDrawing --verb=FileSave --verb=FileClose *.svg
我需要做相反的事情。我想将绘图放入64 x 64
点画布(已在所有.svg
文件中设置)。不幸的是,Inkscape没有提供FitDrawingToCanvas
命令。此外,配件应保持图纸的纵横比。
如果很重要:我正在使用Ubuntu raring。
Answers:
我在以下问题中找到了解决此问题的方法:Inkscape-通过命令行/终端居中绘制到页面
使用“ foo.svg”作为要编辑的图像:
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit foo.svg
要编辑当前目录中的所有svg图像:
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileClose *.svg
但是,第二个命令会打开大量的窗口,如果您编辑的图像过多,则会使计算机崩溃。仅对于Linux,此命令将更好地工作:
for img in $(ls *.svg) ; do inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit $img ; done
对于上述命令,如果任何文件都是符号链接,则Inkscape将编辑符号链接指向的目标文件。如果您不希望Inkscape执行此操作,则可以使用以下命令过滤掉所有符号链接:
for img in $(ls *.svg) ; do if [[ $(readlink $img) == "" ]] ; then inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit $img ; fi ; done
#!/bin/bash
# inkscape-center <file-or-directory>...
_analyse() {
if [ -d "${1}" ] ; then
_centerAll "${1}" ;
else
_center "${1}" ;
fi
}
_centerAll() {
cd "${1}" ;
for img in $(ls "*.svg") ; do
_filterSyms "${img}" ;
done
}
_filterSyms() {
if [[ $(readlink "${1}") == "" ]] ; then
_center "${1}"
fi
}
_center() {
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit "${1}"
}
for arg ; do
_analyse "${arg}" ;
done
我调用它inkscape-center
并像这样运行它:
inkscape-center <file-or-directory>
它接受任意数量的参数,因此您可以执行以下操作:
inkscape-center 1st.svg 2nd.svg 3rd.svg 4th.svg
注意 -如果指定目录而不是文件,它将编辑该目录中的每个svg文件。
您可以使用viewBox完成所需的操作。我不知道是否可以在Inkscape中执行此操作,但是由于SVG是标准格式,因此可能还有另一种工具可以完成您想要的工作。对于“SVG命令行工具”快速搜索发现了一些有趣的结果,其中包括这一个用于创建CSS图标。
第二种选择是用您选择的语言编写自己的工具来执行此操作。基本要点是将viewBox设置为文档的高度,然后设置所需的文档的宽度和高度。最后,设置preserveAspectRatio属性。
这是上面描述的修改在最初为744x1052的文档上的外观。
<svg
width="64"
height="64"
viewBox="0 0 744 1052"
preserveAspectRatio="xMinYMin slice"