3

Pythonでコミックアーカイブリーダーを作成して、Pythonをさらに習得したいのですが、ファイルを抽出して表示せずにzipアーカイブから別の画像ファイルを読み取ろうとすると問題が発生します。

.gif画像しか表示できない例(http://www.python-forum.org/pythonforum/viewtopic.php?f=4&t=3607)のあるWebサイトを見つけました。この例PhotoImageでは、実際のファイルの代わりに64ビットでエンコードされた文字列を受け入れることができる(PILバージョンではなくTkinterバージョン)を使用しています。私の研究のほとんどから、PILはgif以外の画像を処理するために使用したいもののように見えますがPIL.ImageTk.PhotoImage、と同様の方法で呼び出す方法を見つけることができませんTkinter.PhotoImage。実際のファイルの代わりにデータのストリームを取得します。

受信したデータをに渡す方法はありますzipfile.read()PIL.ImageTk.PhotoImage?画像を処理するために使用できる別のライブラリはありますか?Tkinterは私が書いているプログラムの要件ではないので、使用すべきより良いウィジェットフレームワークがあれば、変更してもかまいません。

編集:それで私はPILとtkinterでこれを行う方法を考え出しました。

z = zipfile.ZipFile("zipfile.zip", "r")

data = z.read(z.namelist()[0])    #Read in the first image data
dataEnc = StringIO(data)          #Encode the raw data to be used by Image.open()

img = Image.open(dataEnc)         #Open the image
pimg = ImageTk.PhotoImage(img)    #Make tk compatible image
4

1 に答える 1

0

PythonMagickを使用して、次のImageようなものを作成できます。

from PythonMagick import *

data = zipfile.read()
img = Image(Blob(data))

次に、「表示」セクションのPythonMagick readmeで提案されているように、wxPythonを使用して表示します。

于 2012-06-08T03:09:59.893 に答える