saveImageDataToFile(color_and_alpha_data, width, height, file_name)
color_and_alpha_data
floatシーケンスまたは画像データを含んだバイナリ文字列のどちらか。 そのデータはインターリーブ(交互)形式でなければなりません。 つまり、1番目のピクセルが、最初の4つの値の赤、緑、青、アルファ(RGBA)で、2番目のピクセルが次の4つの値でなければなりません。 そのデータの1行目のピクセルが、画像のトップ走査線に相当します。
このシーケンスの長さはwidth * height * 4
でなければなりません。
.pic
ファイルを書き出す時、floatシーケンスを指定すると、そのファイルは32ビット浮動小数点データを保存し、
文字列を指定すると、そのファイルは8ビット符号なしデータを保存します。
バイナリ文字列データは、Python3だとbytes
オブジェクト、Python2だとstr
オブジェクトでなければなりません。
詳細は、HOMバイナリデータを参照してください。
width
, height
書き出される画像の幅と高さ。
file_name
作成する出力画像ファイルの名前。Houdiniは、このファイルの拡張子に基づいて自動的に作成するファイルのタイプを決定します。
この関数には、他のイメージングライブラリに備わっていない2つの機能が備わっています:
-
Houdiniの
.pic
形式でファイルを作成することができます。 -
32ビット浮動小数点データで画像を保存することができます。
データが正しいサイズでない、出力ファイルを作成できなかった、出力ファイル形式がHoudiniでサポートされていない場合は、hou.OperationFailedを引き起こします。
以下のサンプルは、Pythonイメージングライブラリ(PIL)を使用してファイルを読み込み、この関数をコールしてファイルを書き出します。
以下のconvertImage
関数を使用することで、PILで読み込むことができる画像をHoudiniの.pic
形式に変換することができます。
import Image def convertImage(input_image, output_image): im = Image.open(input_image) im.mode != "RGBA": raise ValueError("The image must contain alpha information") hou.saveImageDataToFile(im.tostring(), im.size[0], im.size[1], output_image) convertImage("image.png", "image.pic")
PythonでCOPを書き出すも参照してください。