2017-02-12 53 views
0

jp2( "JPEG 2000")形式の16ビットグレースケール配列を保存するためにPython Pillowライブラリを使用したいと思います。WindowsにOpenJPEGをインストールし、それをPillowで使用するにはどうすればよいですか?

Windowsマシンに必要なライブラリOpenJPEGをインストールしようとすると、壁が壊れてしまいました。 documentationはあまり明確ではありませんが、私はWin64バイナリをダウンロードし、単にそれらを自分のパス(私がやったもの)に置く必要があると仮定しました。

これで、WindowsのAnaconda 4.3.0でPillow 4.0.0を使用しているときに、次のエラーが表示されます。

IOError: encoder jpeg2k not available 

そこに誰もが正常にJPEG 2000ファイルを読み書きするために枕を使用し、私は確かにいくつかのヒントをいただければ幸いです。

編集:

import PIL 
import numpy as np 

arr = np.ones(dtype=np.uint16, shape=(100, 100)) 
im = PIL.Image.fromarray(arr) 
im.save('arr.jp2') 
+0

あなたのコードを提供してください。失敗してください。エラーメッセージに「デコーダ」と表示されます。ファイルを開こうとしていますか?はいの場合は、サンプルファイルを提供してください。だから、誰でもテストすることができます。 –

+0

申し訳ありませんが、私はこれをメモリから入力していました。それは "デコーダ"エラーではありませんでした。それは「エンコーダ」でした。また、私は失敗したコードを取り込んだ。 OpenJpegがインストールされている必要があるという枕の状態のドキュメント...これは私が難しかったことです。 –

+0

私にとっては、「このデータ型を処理できません」というエラーが表示され、im = ...で失敗します。どのような枕のバージョンがありますか(出力フォームのcondaリスト)ですか? –

答えて

0

アナコンダのMicrosoft Visual StudioツールのPythonのusing異なるバージョンをビルド:

ここでは、失敗したコードです。

これらのツールの各バージョンは、と互換性がなく、と他のバージョンの独自のランタイムを持っています。

コンパイルされた共有ライブラリを使用するピローライブラリです。 でOpenJPEGを正確ににコンパイルする必要があります。これは、PythonとPillowのビルドに使用したmsビジュアルスタジオツールと同じバージョンです。

+0

それで、OpenJpegもコンパイルできましたか? –

+0

@KeithL ms-windowsは使用しません。 –

0

私はちょうどhereからのインストーラでピローをインストールしました。私はPillow-4.0.0.win-amd64-py3.5.exeを選択しました。インストール時に、それはcondaのpythonを見つけ、インストールする場所を適切に選択しました(それはルート環境にインストールされました)。

それをテストするためのコードは動作します:ファイルが8 BPPを持って保存

from PIL import Image 
import numpy as np 
arr = np.ones(dtype=np.uint16, shape=(100,100)) 
im = Image.fromarray(arr) 
im.save('test.jp2') 

注意を。

+0

それで8ビットとして保存されたのですか?うーん。私がこれをやっている全体のポイントは、16ビットとして保存することです。 :(それは心配です。ありがとうございます。 –

関連する問題