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

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

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

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

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

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

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


person mabs    schedule 11.12.2013    source источник


Ответы (1)


Да, но в этом случае я бы рекомендовал использовать Python в качестве языка сценариев, а не скрипт-фу. Для чего-то подобного вам даже не понадобится плагин, вы можете просто ввести что-то вроде следующего в filter-> 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).

person jsbueno    schedule 11.12.2013
comment
Спасибо, это именно то, что мне нужно. - person mabs; 13.12.2013
comment
Есть ли причина, по которой это будет очень медленно сохранять файлы? Это занимает около 10 минут на файл в Windows 8, 64-разрядной версии, i5, 8 ГБ ОЗУ. Или дело только в размерах файлов? (7 файлов по ~ 30 МБ каждый?) - person Oliver Burdekin; 08.11.2016