Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scripting 以编程方式组合SVG图像_Scripting_Svg_Batch Processing - Fatal编程技术网

Scripting 以编程方式组合SVG图像

Scripting 以编程方式组合SVG图像,scripting,svg,batch-processing,Scripting,Svg,Batch Processing,我有一个程序,可以批量生成多个SVG文件,然后我需要能够将这些文件组合(平铺)成一个文件,并以厘米(或毫米)为单位设置空白和宽度 我需要一个现有的脚本或一个指针,指向我可以用来实现这一点的库和语言。从哪里开始有什么建议吗?您可以从ImageMagick中查看蒙太奇: 您可以围绕它构建脚本。以下是一些工具,可以帮助您从SVG文件创建SVG精灵表: 然后,当所有这些都使用类似的工具完成时,您就可以清理svg了 是的,如前所述,您可以使用蒙太奇,但这有点棘手,我通过激活-verbose输出进入它,

我有一个程序,可以批量生成多个SVG文件,然后我需要能够将这些文件组合(平铺)成一个文件,并以厘米(或毫米)为单位设置空白和宽度


我需要一个现有的脚本或一个指针,指向我可以用来实现这一点的库和语言。从哪里开始有什么建议吗?

您可以从ImageMagick中查看蒙太奇:


您可以围绕它构建脚本。

以下是一些工具,可以帮助您从SVG文件创建SVG精灵表:

然后,当所有这些都使用类似的工具完成时,您就可以清理svg了

是的,如前所述,您可以使用
蒙太奇
,但这有点棘手,我通过激活
-verbose
输出进入它,并看到它创建了一个
inkscape
命令并进行分析,为我解决了这个问题

montage -version
# Version: ImageMagick 7.0.7-31 Q16 x86_64 20180506
我想

  • …标记桌面图标:使用
    -label
    -pointsize
    (通过pointsize获得正确的字体大小很难,但取决于密度)
  • …以增加密度(很难为输出找到合适的数字)
  • …要按顺序堆叠和平铺:使用
    -tile 15x30
    (此处为15列x 30行)
  • …要在每个子图像上添加边距,请使用
    -geometry'+40+0'
    (水平添加40px,垂直添加0px)
生成的命令是(添加
-verbose
以获取详细的处理信息):


如果您另外指定所需的输出像素大小几何体,例如96像素乘96像素
-geometry“96x96+40+0”
,则理解
-density
的作用将变得更加复杂。我没能把它弄清楚;-)

蒙太奇似乎不支持矢量图形,它支持SVG。我对他们使用蒙太奇,没有任何问题。ImageMagick®是一个用于创建、编辑、合成或转换位图图像的软件套件。它可以读取和写入各种格式(超过100种)的图像,包括DPX、EXR、GIF、JPEG、JPEG-2000、PDF、PhotoCD、PNG、Postscript、SVG和TIFF。但据我所知,我需要将数据转换为光栅以使用蒙太奇?我还需要SVG输出。
montage -label '%f' -pointsize 2 -density 300 *.svg \
  -tile 15x30 \
  -geometry '+40+0' \
 ./papirus-icons-mimetypes.png