首页 > 解决方案 > 在 Python 中将 PSD 图层导出到 EXR

问题描述

我正在尝试编写一个程序来读取 .psd 文件,将图层拆分为单独的图像(保持原始图像的尺寸)并将它们导出为 EXR 文件。

我目前正在尝试使用 OpenImageIo 库来完成此操作,但文档对于如何在 python 中实现这一点并不是特别清楚。

我已经成功地读取了完整的 .psd 并将其导出到 .exr,但我一直在尝试的一切似乎都表明有不止一层(子图像)可以与之交互。

在那儿:

  1. 我遗漏了一些明显的东西,或者
  2. 更好的方法来实现这一点?

边注:

我使用 psd_tools2 取得了一些成功,但图像无法导出为 .exr,也不是正确的尺寸。

标签: pythonpsdopenimageio

解决方案


这实际上相对简单,但是有一个警告,目前它似乎只支持 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))

推荐阅读