Экспорт слоев PSD в EXR в Python
Я пытаюсь написать программу для чтения в файле.psd, разделить слои на отдельные изображения (сохраняя размеры исходного изображения) и экспортировать их как файлы EXR.
В настоящее время я пытаюсь использовать библиотеку OpenImageIo для достижения этой цели, но в документации не совсем ясно, как это может быть достигнуто в Python.
Мне удалось прочитать полный файл.psd и экспортировать его в.exr, но ничто из того, что я пробовал, не указывает на то, что существует более одного слоя (подизображения) для взаимодействия.
Есть:
- что-то очевидное, что я скучаю, или
- лучший способ сделать это?
Примечание:
Я имел некоторый успех, используя psd_tools2, но изображения не могут быть экспортированы как.exr, и они не являются правильными размерами.
1 ответ
На самом деле это относительно просто, однако есть одно предостережение в том, что на данный момент поддерживается только 8-битные psd-файлы.
import OpenImageIO as oiio
sourcefile = '/path/to/sourcefile.psd'
buf = oiio.ImageBuf(sourcefile)
for layer in range(buf.nsubimages):
buf.reset(sourcefile, subimage=layer)
buf.write('/tmp/mylayer_{l}.exr'.format(l=layer))