Как извлечь изображения из PSD-файла, включая изображения, содержащиеся в одном слое

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

Причина, по которой мне нужны файлы, заключается в том, что я просил создать анимацию с помощью CSS с использованием изображений. Пример анимации находится по адресу http://srv1.contobox.com/frontend/ads/preview.html?id=981

Документ PSD, который я пытаюсь извлечь, - это https://www.dropbox.com/sh/ud2eaesej08o0g3/AAAi-_pPHGESOFOBpA0uQfjta

1 ответ

Решение

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

(Кстати, GIMP нестабильный - версия для разработки 2.9, вероятно, в настоящее время не работает для открытия PSD - изображение там искажается. Однако оно открывается в gimp 2.8.10)

Можно сохранить все слои, включая подслои, как отдельные изображения с взаимодействием в консоли Python. Поскольку PSD является единственным изображением, открытым в GIMP, перейдите в filters->python->console и введите что-то вроде этого:

img = gimp.image_list()[0]  # retrieves a reference to the image

folder = "/tmp/" # folder of you choice for saving the files
counter = 0
def save_recurse(item):
    global counter 
    if hasattr(item, "layers"):
        for layer in reversed(item.layers):
            save_recurse(layer)
    else:
        counter += 1
        name = folder + "layer_%03d.png" % counter
        pdb.gimp_file_save(img, item, name, name)


save_recurse(img)

(кстати, я набрал его здесь так, чтобы вы могли просто скопировать и вставить приведенный выше список в консоль Python GIMP)

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