3

В настоящее время я делаю это в файле BAT:

Inkscape.exe --file "some.svg" --export-png "some_64.png" --export-width 64
Inkscape.exe --file "some.svg" --export-png "some_96.png" --export-width 96
Inkscape.exe --file "some.svg" --export-png "some_128.png" --export-width 128

Но это довольно медленно запускать Inkscape 3 раза подряд и открывать один и тот же файл, плюс вам нужно сохранить исходный файл SVG перед запуском экспорта BAT и убедиться, что BAT получает правильное имя файла.

Поэтому мне интересно, есть ли инструмент (или плагин), который позволяет программно или пакетно экспортировать из Inkscape, что-то вроде диалога Export Bitmap, но с поддержкой сценариев?

2 ответа2

1

Альтернативой может быть создание прямоугольника для каждого необходимого размера экспорта и помещение каждого из них в отдельный слой (например, с именем в качестве размера экспорта - size64, size96 и т.д.).

Хитрость в том, что когда вы выбираете один из этих прямоугольников и нажимаете кнопку экспорта, этот объект запоминает свойства экспорта, например размер экспортированного растрового изображения, а также путь. Обязательно оставайтесь на вкладке "Выбор" диалогового окна экспорта растрового изображения.

Сделайте все прямоугольные слои полностью прозрачными. Обратите внимание, что по-прежнему можно выбрать такой прямоугольник, щелкнув левой кнопкой мыши и нажав Ctrl+A:ing, если слой, в котором он находится, является активным слоем.

После того как вы определили эти цели / прямоугольники экспорта, вы можете повторно экспортировать их, выбрав [1] все прямоугольники экспорта и снова нажав Ctrl+Shift+E, чтобы открыть диалоговое окно экспорта. Установите флажок "Пакетный экспорт X объектов" и нажмите "Экспорт"!

Теперь, чтобы сделать этот процесс экономичным, вам может потребоваться определить целый массив прямоугольников для всей вашей графики, поэтому у вас есть один прямоугольник для каждой графики в каждом неграфическом слое.

[1] Выбор всех экспортных прямоугольников требует небольшой хитрости: в диалоговом окне слоев заблокируйте все неэкспортированные прямоугольные слои и нажмите Ctrl+A. Вуаля - все прозрачные экспортные прямоугольники выбраны!

0

https://inkscape.org/doc/inkscape-man.html#shell

С этим параметром Inkscape войдет в режим оболочки интерактивной командной строки. В этом режиме вы вводите команды в командной строке, и Inkscape выполняет их без необходимости запуска новой копии Inkscape для каждой команды. Эта функция в основном полезна для сценариев и использования сервера: она не добавляет новых возможностей, но позволяет повысить требования к скорости и памяти любого сценария, который постоянно вызывает Inkscape для выполнения задач командной строки (таких как экспорт или преобразования). Каждая команда в режиме оболочки должна быть полной действительной командной строкой Inkscape, но без имени программы Inkscape, например:

    file.svg --export-pdf=file.pdf

Не уверен, что пакетный скрипт Windows способен взаимодействовать в интерактивном режиме. Это не проблема современных скриптовых языков, например, Python.

Inkscape, похоже, не для сценариев.
Inkscape Extensions, по-видимому, в основном предназначены для генерации / изменения / обработки SVG-графики / данных, но не для автоматизации функций пользовательского интерфейса: https://inkscape.org/develop/extensions/ (см. Некоторые расширения на https://inkscape.org. / галерея / = расширение /).

Для общей автоматизации (например, чтобы ввести параметры и автоматически нажать кнопку «Экспорт»), загляните на https://en.wikipedia.org/wiki/AutoHotkey.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .