Есть ли способ разрезать лист спрайта на отдельные изображения в GIMP? - PullRequest
0 голосов
/ 30 сентября 2018

Я работаю со спрайтовым листом и хочу создать отдельные изображения для каждого кадра, надеюсь, используя какое-то удобное соглашение об именах.

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

В настоящее время я вручную обрезаю каждый кадр с помощью инструмента обрезки, затем экспортирую его как PNG, перезагружаяфайл листа и повторение.Поскольку я буду делать это с большим количеством спрайтов, у каждого из которых будет гораздо больше фреймов, чем у меня сейчас, этот метод скоро станет неустойчивым.

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Плагин "py-slice", который поставляется с GIMP, имеет аналогичную функциональность, хотя он опирается на направляющие изображения - https://gitlab.gnome.org/GNOME/gimp/blob/master/plug-ins/pygimp/plug-ins/py-slice.py

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

В частности, вам не понадобится почти весь код в циклах for, которые взаимодействуют по горизонтальным и вертикальным направляющим, по строкам 90-127, там, а также, ни один из элементов, генерирующих HTML -

Вместо этого добавьте «ширину, высоту спрайта, внутренние отступы» в качестве входных данных и итерируйте прямоугольники - и измените некоторые параметры в вызове «register», чтобы ваш файл регистрировался как другой плагин, вместо этогосуществующего.

0 голосов
/ 30 сентября 2018

Сценарий ofn-плитка сделает это, но не учитывает интервал.

Чтобы удалить интервал, вы можете использовать функцию unshred сценария ofn-shred-layer , один раз по вертикали и один раз по горизонтали (примечание: вы задаете ширину полос, а неплитки).

...