Программирование командной строки Inkscape

Я хотел бы иметь возможность получить новые снимки из уже существующего изображения из командной строки. Для этого я бы включил/выключил определенные слои с частями изображения, а затем сохранил полученное изображение в файл. Однако, хотя я вижу несколько команд, перечисленных в справке по управлению слоями, я не вижу ни одной, которая позволила бы выбрать конкретный и включить/выключить его.

2 ответов


если то, что вы хотите сделать, может быть достигнуто путем удаления нескольких нежелательных элементов по их ID (скажем, layer17 и layer4711), вы можете сделать это так:

inkscape image.svg \
  --select=layer17   --verb=EditDelete \
  --select=layer4711 --verb=EditDelete \
  --verb=FileSave --verb=FileClose

обратите внимание, что это приведет к перезаписи image.svg С результатом, поэтому, если вы пишете это, обязательно работайте с копией, а не с оригиналами.


inkscape image.svg --export-id-only --export-id=layer17 --export-png=image.png --export-width=100 --export-height=100

на Mac вам, возможно, придется сделать:

/Applications/Inkscape.app/Contents/Resources/bin/inkscape --without-gui --file=image.svg --export-id-only --export-id=layer17 --export-png=image.png --export-width=100 --export-height=100