Экспорт Inkscape из командной строки: страница, рисунок, объект
Выберите границы страницы, рисунка или объекта для экспорта PNG из командной строки Inkscape. Сравните реальные результаты, создайте два размера и сохраните оригинал SVG.
На этой странице
Для экспорта PNG из командной строки Inkscape сначала выберите область: --export-area-page сохраняет рамку страницы, --export-area-drawing подгоняет ее под рисунок, а --export-id задает границы объекта. Добавьте --export-id-only, если результат должен показывать только этот объект. Руководство по командной строке Inkscape различает обрезку по объекту и скрытие остальных объектов.
Затем явно задайте ширину результата, прозрачность и имя файла. Эти настройки упрощают проверку и повторение небольшой партии файлов для передачи.
Что изменилось в наших тестовых экспортированных файлах
Мы создали SVG 600 × 360 с двумя именованными объектами: зеленым значком и коралловым образцом цвета, перекрывающим его правый край. На странице много пустого пространства. Общие границы рисунка — 400 × 180 единиц; отдельный значок — 180 × 180.
Мы экспортировали исходник через исполняемый файл командной строки официального приложения Inkscape 1.4.4 для macOS arm64. Во всех четырех экспортированных файлах ниже запрошены ширина 600 пикселей и прозрачный фон.
| Выбор экспорта | Результат в этом тесте | Видимое содержимое |
|---|---|---|
| Область страницы | PNG 600 × 360 | Оба объекта с полями страницы. |
| Область рисунка | PNG 600 × 270 | Оба объекта с более плотной обрезкой. |
| ID значка | PNG 600 × 600 | Значок и часть перекрывающего образца цвета. |
ID значка с --export-id-only | PNG 600 × 600 | Только значок. |

Изолированный объект намного крупнее внутри своего PNG, поскольку мы по-прежнему запросили 600 пикселей по его более узким границам. Постоянная ширина результата не означает постоянного масштаба изображения, если область экспорта меняется.
Эти примеры используют одностраничный SVG с обычными фигурами. Они не проверяют выбор нескольких страниц, фильтры или связанные изображения.
Создайте исходник со стабильными ID объектов
Сохраните следующее как master.svg. ID группы badge позволяет команде экспортировать ее круг и контуры вместе. Второй объект, swatch, намеренно пересекает границы значка.
<svg xmlns="http://www.w3.org/2000/svg"
width="600" height="360" viewBox="0 0 600 360">
<g id="badge">
<circle cx="150" cy="160" r="90" fill="#236f62"/>
<path d="M150 89L190 160L150 231L110 160Z" fill="#cde0a4"/>
<path d="M150 115L175 160L150 205L125 160Z" fill="#236f62"/>
</g>
<rect id="swatch" x="200" y="140" width="260" height="80"
rx="12" fill="#d68462"/>
</svg>Для существующего дизайна проверьте ID в SVG перед написанием скрипта экспорта. Имя объекта, отображаемое редактором, может отличаться от XML id, используемого командой. Наше руководство по редактированию SVG объясняет, как проверять и менять разметку, сохраняя резервную копию.
Экспортируйте страницу, рисунок и изолированный значок
Команды ниже используют синтаксис Bash или Zsh. Выполняйте их из папки с master.svg. Сначала укажите в переменной оболочки путь к исполняемому файлу Inkscape:
inkscape_bin=inkscape
mkdir -p exportsЭта настройка предполагает, что inkscape доступен в вашем PATH. При обычной установке приложения macOS значение может быть /Applications/Inkscape.app/Contents/MacOS/inkscape. При присваивании заключите путь в кавычки, если он содержит пробелы.
Для всей страницы:
"$inkscape_bin" --batch-process master.svg \
--export-type=png --export-area-page \
--export-width=600 --export-background-opacity=0 \
--export-filename=exports/page.pngДля обрезки вокруг рисунка:
"$inkscape_bin" --batch-process master.svg \
--export-type=png --export-area-drawing \
--export-width=600 --export-background-opacity=0 \
--export-filename=exports/drawing.pngДля отдельного значка:
"$inkscape_bin" --batch-process master.svg \
--export-type=png --export-id=badge --export-id-only \
--export-width=600 --export-background-opacity=0 \
--export-filename=exports/badge.pngЧтобы воспроизвести контрольное перекрытие на рисунке, удалите --export-id-only из последней команды и измените имя результата. Тогда коралловый образец цвета появится внутри обрезки значка. Выбор обрезки по ID сам по себе не изолирует изображение.
Руководство Inkscape описывает эти флаги. --export-width задает ширину растра в пикселях и переопределяет настройку DPI. Пропорции области экспорта определяют соответствующую высоту. Мы используем один вариант области в каждой команде и явный выходной путь .png.
Мы включили --batch-process в проверенные команды. В этом запуске macOS экспорт без него записывал PNG, но оставлял процесс работающим; команды выше завершались нормально. Этот флаг отличается от цикла оболочки, запрашивающего несколько размеров.
Создайте два размера без изменения оригинала
Для пары PNG с рамкой страницы повторите те же настройки области и измените только ширину и имя результата:
for export_width in 240 480; do
"$inkscape_bin" --batch-process master.svg \
--export-type=png --export-area-page \
--export-background-opacity=0 \
--export-width="$export_width" \
--export-filename="exports/page-${export_width}.png" || exit 1
doneНаш запуск создал PNG 240 × 144 и 480 × 288. Оба сохранили ту же рамку страницы и прозрачный фон. Хеш SHA-256 файла master.svg совпал до и после экспорта, поэтому в этом тесте байты исходника не изменились.
При расширении процесса до более крупной задачи используйте имена результатов, указывающие исходник, область и размер. Храните команды в скрипте рядом с исходными файлами, чтобы позднее воспроизвести настройки. Проверьте первые результаты перед обработкой большой папки графики.
Проверьте файлы перед передачей
Проверьте и размеры, и видимое содержимое. Успешная команда все равно может экспортировать неверную обрезку, нежелательное перекрытие или больше полей, чем вы хотели.
- Большие пустые поля: сравните экспорт страницы и рисунка. Выберите рамку, которую ожидает целевая среда.
- Другой объект появляется в обрезке по ID: проверьте, нужен ли
--export-id-only. - Прозрачность выглядит белой в программе просмотра: откройте PNG на контрастном фоне. Белый фоновый объект в исходнике — часть изображения и остается видимым даже при прозрачном фоне экспорта.
- Изображение выглядит крупнее в разных результатах: сравните область экспорта, а также пиксельную ширину.
Руководство по экспорту PNG в Inkscape объясняет понятия страницы, рисунка, выделения и фона, стоящие за этими настройками. PNG — растровый файл для передачи, поэтому сохраняйте SVG для редактирования. См. руководство по файлам SVG, если нужно проверить реальное содержимое исходника.
Если вы сравниваете другой способ автоматизации, наше руководство по SVG в PNG через Sharp рассматривает средство отрисовки и процесс задания размеров этой библиотеки. Его параметры API не переносятся напрямую в Inkscape.
Если исходное изображение существует только в PNG или JPG, векторизатор изображений PerfectVector может подготовить редактируемую векторную графику перед этим этапом экспорта. Проверьте восстановленные контуры в редакторе, затем выберите рамку страницы и ID объектов. Процесс Trace Bitmap в Inkscape — еще один способ подготовки. SVG, который уже содержит нужные контуры, можно сразу экспортировать.
Частые вопросы
Почему экспорт страницы и рисунка дает разные размеры? Их границы могут иметь разные пропорции. В нашем тесте оба запрашивали ширину 600 пикселей, но страница 600 на 360 дала более высокий PNG, чем границы рисунка 400 на 180.
Почему export-id все еще включает другой объект? Он выбирает границы экспорта целевого объекта. Другая графика, пересекающая эти границы, может остаться видимой. Добавьте export-id-only, если хотите скрыть другие объекты.
Перезаписывает ли эта партия PNG исходник SVG? Показанные команды читают master.svg и записывают PNG с отдельными именами. Хеш нашего исходника после теста не изменился. Храните оригинал и передаваемые файлы отдельно, а дополнительные действия редактирования или сохранения проверяйте перед добавлением в скрипт.
Источники
- Inkscape Wiki — Using the Command Line — Процессы экспорта и различие между обрезкой по объекту и выводом изолированного объекта.
- Inkscape — Command-line manual — Параметры области, объекта, размера, фона и вывода.
- Inkscape Beginners' Guide — Exporting a PNG File — Понятия области экспорта и прозрачности.
Если изображению еще нужны векторные контуры, векторизуйте изображение и сначала проверьте результат. Затем сохраните оригинал SVG, выберите одну область экспорта и проверьте обрезку и размеры первого PNG перед повторением партии.
Ещё из блога

Inkscape Pattern Along Path: бордюр из одного мотива
Повторите мотив листа эффектом Pattern Along Path в Inkscape. Выберите настройки копий, учтите искажения, сохраните редактируемый оригинал и проверьте итоговый SVG.

Единицы узоров SVG: размер повторяющихся мотивов
Управляйте интервалами узора SVG и размером мотива через patternUnits, patternContentUnits и viewBox. Сравните изменение размера фигуры с масштабированием всей группы.