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).