Gimp сохранить все слои в файлы с размером слоев

У меня есть.xcf-файл с 20+ слоями, которые я использую для создания спрайт-файла.

Я хотел бы сохранить все эти слои в отдельных файлах только с содержанием и размером каждого слоя.

Я нашел этот скрипт для gimp: https://github.com/jiilee/gimp

К сожалению, этот скрипт создает файлы с полным размером изображения, а не с размером каждого слоя.

Для примера: изображение с шириной 700px и высотой 400px. Слой размещается в x: 100px, y: 29px с шириной: 72px, высотой: 21px; Сценарий, который я нашел, создает файл размером 700px x 400px, а не так, как мне нужно 72px x 21px.

Возможно ли сделать это автоматически?

1 ответ

Решение

Да, но я бы порекомендовал использовать Python в качестве языка сценариев в этом случае, а не script-fu. Для чего-то вроде этого вам даже не понадобится плагин, вы можете просто напечатать что-то вроде следующего в filters->python-fu->console

>>> img = gimp.image_list()[0]
>>> img.layers[0].name
'C'
>>> folder = "/tmp/"
>>> for layer in img.layers:
...   name = folder + layer.name + ".png"
...   pdb.gimp_file_save(img, layer, name, name)
... 
>>> 

Готово! Этот фрагмент предполагает, что в GIMP открыто одно изображение (по умолчанию используется последнее открытое изображение в списке с [0].)

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

И, конечно, вы можете улучшить его, создав более сложную схему именования файлов и так далее. Чтобы превратить это ядро ​​в автоматизированный рабочий плагин python-fu, вам просто нужно поместить его в функцию, в файл.py в вашем личном каталоге плагинов. (если в Unix/Mac OS/Linux вы также должны установить его как исполняемый) - и сделать вызовы реестра и основных функций GIMP-fu, в том же файле - выберите пример здесь, http://www.ibm.com/developerworks/opensource/library/os-autogimp/ о том, как упорядочить файл и выполнить эти вызовы. (Вы можете перейти прямо к листингу 6).

Другие вопросы по тегам