Экспорт слоев PSD в EXR в Python

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

В настоящее время я пытаюсь использовать библиотеку OpenImageIo для достижения этой цели, но в документации не совсем ясно, как это может быть достигнуто в Python.

Мне удалось прочитать полный файл.psd и экспортировать его в.exr, но ничто из того, что я пробовал, не указывает на то, что существует более одного слоя (подизображения) для взаимодействия.

Есть:

  1. что-то очевидное, что я скучаю, или
  2. лучший способ сделать это?

Примечание:

Я имел некоторый успех, используя 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))
Другие вопросы по тегам