2012-04-11 6 views
-1
誰かが48ビット画像(16ビットのチャネルR、G、及びB)を読み取ることPyPNGを用いた例を投稿することができれば、私は思っていた

、取得及び表示画素を書き込む48ビット、変化画素の色を読み取ります特定のピクセルの色(たとえば、ピクセル88など)を変更し、その値を変更して、それをpngに書き戻します。 私は非常に疎であることをドキュメントを見つけ、任意の助けをいただければ幸いです。PyPNGバック

def readPNG2(f): 
    r=png.Reader(f) 
    r.read() 
    print r.bitdepth 

これは16の結果をもたらします。私はPhotoshopから自分のイメージをチャネルごとに16個(48ビット)保存しました。何が欠けているのですか?これは実際チャンネルごとに16ビットと言っていますか?チャンネルあたり16ビットを意味する

+0

私は構文に立ち往生しています、それは次のようになります。) デフreadPNG2(ファイル名:? R = png.Reader(filenameherehow) r.read() – wren

答えて

0

はい。 1ピクセルあたり16ビットまたは15ビットは、主に過去のものです。ドキュメントではload 16bpc into a numpy arrayの方法について説明しています。

PyPNGのAPIは、Cからlibpngを直接使用することからわずかしか離れていないようです(詳細はlibpng manualを参照してください)。これはPythonアプリケーションの場合にはMyPaint does it via swig extension

+0

ああ!まことにありがとうございます! – wren