Как Пакетно Экспортировать Слои Svg-Файла, Созданного Inkscape, В Растровое Изображение Для Спрайтов?

  • Автор темы Skirter
  • Обновлено
  • 22, Oct 2024
  • #1

Пакетный экспорт означает, что мне может потребоваться добавить определенные преобразования, такие как сглаживание, исправление контрастности и изменение размера. SVG здесь означает, что я использую Inkscape. Один слой здесь — это спрайт. В настоящее время я экспортирую каждый слой в растровое изображение отдельно, File > Export Bitmap -- but it is time-consuming.

Как пакетно экспортировать слои SVG-файла, созданного Inkscape, в растровое изображение для спрайтов?

  1. Есть ли какой-нибудь способ программного пакетного экспорта слоев из SVG-файла?

  2. Или в Inkscape существует какая-то кнопка пакетного экспорта?

  3. Мне специально нужна одна и та же пользовательская область для каждого спрайта, то же самое, что много раз щелкать меню, но это глупо - возможно, для этого есть какой-нибудь макрос?

#inkscape #пакетная обработка #спрайт

Skirter


Рег
13 May, 2005

Тем
99

Постов
220

Баллов
725
  • 26, Oct 2024
  • #2

Вы можете использовать командную строку для экспорта всех слоев. Во-первых, посмотрите, сколько или какие слои у нас есть, с

 
 
 
 
 
 
 --frames-- 
or --frames-- :

inkscape output.svg --export-pdf=output.pdf

Имея идентификатор (точное имя) слоя, теперь вы можете экспортировать его с помощью exportlayers.py --hide layerA --show layerB --show layerB input.svg output.svg or for i in $(seq 1 12); do inkscape -f input.svg -z -C -i "layer$i" -j -h 1080 -e "$i.png" & done и ExportOverlays + Ghostscript

$ inkscape --usage

su_* defines the exported area (full page, as defined in document properties). You can also use no-control-with-contrast-in-exportation , anti-alias-always-on-in-exportation , su_.* и некоторые другие.


Чтобы автоматизировать это, вы можете создать список команд:

verbalsh.*

Или экспортировать все слои:

$ для слоя в $(inkscape --query-allpresentation.svg | grep Layer | awk -F, '{print $1}'); do echo "presentation.svg -jC -i $layer -e $layer.png"; сделанный

Когда вы сохраните это в файле (здесь su_.* ), you can invoke inkscape like this:

$ inkscape --shell < commands.txt

выполните все перечисленные команды.

 

Saeid59_m


Рег
21 May, 2013

Тем
85

Постов
227

Баллов
682
  • 26, Oct 2024
  • #3

Благодаря каналу #inkscape компании Freenode, пользователь commands.txt and $ for id in `seq 1 15`; do echo "presentation.svg -jC -i layer$id -e layer$id.png"; done presentation.svg -jC -i layer1 -e layer1.png presentation.svg -jC -i layer2 -e layer2.png presentation.svg -jC -i layer3 -e layer3.png . --export-eps provided most of the below ideas. Please, notice that exporting to raster means an information loss. Besides, Inkscape has odd features such as --export-pdf -особенность и странность --export-ps -feature, meaning an extra information -loss. su_.* mentioned in this context: «всегда со сглаживанием, тот же рендерер, что и на холсте».

В соответствии с -C, --export-area-page , «более ранний ответ автора JessyInk на похожий вопрос» является здесь где вы экспортируете каждый слой вместе с общим фоновым слоем (который определяет цвет фона или, возможно, размер экспорта).

Связанные запросы на функции

  • «При желании отключить сглаживание для экспорта растровых изображений» - тема здесь или поновее «Отключить сглаживание для экспорта растровых изображений» - тема здесь

  • Параметры экспорта гранулированного PNG здесь

  • «Запрос на добавление функции — экспорт слоев в последовательность PNG…» (в основном графический интерфейс) здесь

  • «Выборочный экспорт слоев из интерфейса командной строки» — уже выполнимо AFAIU с «--export-id»

  • здесь Кандидаты на решениеДжессиИнк: «расширение, входящее в состав Inkscape, для создания презентации на основе слоев, которая включает в себя выходной формат (через «Сохранить»), называемый 'JessInk заархивировал PDF или PNG файл (.

  • .zip)"*. Это "можно создать zip архивировать (опционально) в формате PDF или PNG для каждого слоя"

  • . Болеездесь «[E]xport по идентификатору из командной строки».

  • но есть некоторые проблемы, такие как дополнительная работа по сокрытию других слоев "если все спрайты друг на друге».

. Пример сценария оболочки для экспорта каждого слоя

  1. png.

  2. $ inkscape presentation.svg -i layer1 -j -C --export-png=layer1.png .

здесь.

«[D]определите области экспорта в командной строке»

, более

здесь https://sites.google.com/site/rameyarnaud/media/images/inkscape-export-svg-layers-to-gif-animation

[Новая идея]

«другое внешнее расширение (предназначенное для создания анимации) также может пакетно экспортировать каждый слой в растровое изображение»

, более -j, --export-id-only .

  1. здесь Ссылки Руководство Inkscape по экспорту здесь Командная строка – инструкции по использованию с

 

Bmieclsiec7


Рег
25 Sep, 2014

Тем
66

Постов
189

Баллов
519
  • 26, Oct 2024
  • #4
.

  • Ну извините за реанимацию темы, решение которой уже принято. Я столкнулся с той же проблемой «пакетного экспорта слоев», за исключением того, что я хотел.

  • экспортировать группы слоев вместе,

    например СЛОЙ0+СЛОЙ1, СЛОЙ0+СЛОЙ2, СЛОЙ1+СЛОЙ2.

    Ни JessyInk, ни файлы сценариев из Inkscape Launchpad мне не помогли... https://github.com/berteh/svg-objects-export

    Это один из первых ответов, которые я прочитал, и он дал мне несколько ценных ссылок на написанный мной облегченный сценарий, которым я теперь делюсь с вами, ребята, надеясь, что он будет полезен:

    Ваше здоровье!

     

    Felix92


    Рег
    17 Dec, 2010

    Тем
    70

    Постов
    196

    Баллов
    556
    • 26, Oct 2024
    • #5

    Я думаю, что в Inkscape такой возможности нет. Обходной путь — использовать цепочку

    ExportOverlays экспортирует

    н

    -i

    Слои Inkscape в

    н

    PDF-файлы. Более здесь Затем с помощью Ghostscript вы конвертируете каждый PDF-файл в растровое изображение. Более

    --export-id=ID

    здесь

    $ inkscape --query-all presentation.svg | grep layer | awk -F, '{print $1}' layer1 layer2 layer3

    Это позволяет «пакетно экспортировать слои в растровые изображения» в системе Linux. Я не знаю инструкций для Mac и Windows.

     

    Lefka_017


    Рег
    04 Jun, 2006

    Тем
    62

    Постов
    193

    Баллов
    553
    • 26, Oct 2024
    • #6

    Следующий скрипт позволяет пакетно экспортировать (из командной строки) набор объектов с помощью Inkscape, каждый в отдельный файл. Экспортируемые объекты можно идентифицировать по регулярному выражению по идентификатору или с помощью XPath. В скрипт можно передать любую опцию из командной строки Synfig, включая спецификацию экспортируемой области (либо --export-area-page, либо --export-area=x0:y0:x1:y1).Результат команды будет чем-то вроде

    ./svg-objects-export.py --xpath "//svg:g[@inkscape:groupmode='layer']" --extra '--export-area=40:80:340:580 --export- только для идентификатора' -d выходной-каталог/входной.svg -S and then Slick will automatically create a separate Inkscape SVG file for each layer under --query-all Надеюсь, это поможет.

    https://github.com/juanitogan/slick

     

    Saphannynap69


    Рег
    08 Apr, 2011

    Тем
    72

    Постов
    176

    Баллов
    536
    Тем
    403,760
    Комментарии
    400,028
    Опыт
    2,418,908

    Интересно