Как извлечь изображения из 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)