自己紹介
株式会社digitalbigmoのパイプラインエンジニアの小池@plinecomです。
これは何?
OpenEXRでは色空間としてACESを使うことが多いんだけれど、ACESにもイロイロ種類があるので相互変換できるようにしたいと思った。
とりあえず、コード
main.py
import OpenImageIO as oiio
import glob
import os
if __name__ == '__main__':
for path in glob.glob('C:/EXR/ACES2065_1/*.exr'):
output_folder = os.path.join(os.path.dirname(path) , 'ACEScg')
os.makedirs(output_folder, exist_ok=True)
output_path = os.path.join(output_folder, os.path.basename(path))
print(output_path)
#Read File
buf = oiio.ImageBuf(path)
#Convert ColorSpace
dst = oiio.ImageBufAlgo.colorconvert( buf, "ACES2065-1", "ACEScg",
colorconfig='studio-config-v2.2.0_aces-v1.3_ocio-v2.4.ocio')
#Write File
dst.write(output_path)
必要なPython外部モジュール
- OpenImageIO
コードの説明
色空間の変換方法の指示
dst = oiio.ImageBufAlgo.colorconvert( buf, "ACES2065-1", "ACEScg",
colorconfig='studio-config-v2.2.0_aces-v1.3_ocio-v2.4.ocio')
OCIOで配布されているの.ocioファイルを読み込ませて、変更元のカラースペースACES2065-1と変更後のカラースペスACEScgを指定して変換している。
.ocioファイルが沢山有ってよく分からないよぅ
私もよく分からない。なんとなく調べた感じによると、、
- studio版とCG版というのがあって、studio版の方が精密らしい。
- バージョンっぽいものが3つもある。前から順に
- .ocioファイルのバージョン
- 対応するACESのバージョン
- 対応するOpenColorIOプログラムのバージョン
宣伝
株式会社digitalbigmoでは美肌プラグインの販売や映像VFXの制作業務を行なっています。ご興味のある方は、webページを見にきてください。一緒にお仕事しましょう。