2012-02-05 15 views
1

私はGtk.Imageオブジェクトを持っていて、そのデータをbase64でエンコードされた文字列(imgurと共に使用)に変換したいと思います。どのように私はそれを達成するだろうか?Gtk.Imageをbase64に変換する方法

+0

ファイルの画像形式(PNG、JPEG、GIFなどのbase64でエンコードされた文字列をしたいです。..実際のGtk.Imageオブジェクトではないでしょうか? – Mark

+0

ええと、imgurはbase64でエンコードされたpng、jpegなどを期待しています – Leon

+0

Gtk.Imageに読み込まれるデータのソースは何ですか?そのようなファイルからロードされますか? – Mark

答えて

1

はgdk.pixbufを通してそれを実行するために持っていますが、これは最も簡単なようだ:私は推測してい

import cStringIO 
import base64 

pixBuf = gtkImage.get_pixbuf() 

fH = cStringIO.StringIO() 
pixBuf.save_to_callback(fH.write, "png") 
encodedBuffer = base64.b64encode(fH.getvalue()) #base64 encoded png 
+0

私はこれが正しい答えだと信じています。しかし残念ながら、これらのメソッドは[Ubuntuで壊れているようです](https://bugs.launchpad.net/ubuntu/+bug/888305)... – Leon

+0

可能な回避策は、 'pixbuf.get_pixels'で画像データを取得することです(str )または 'pixbuf.get_pixels_array'(numpy配列を返します)を呼び出し、カイロまたはPILを通過します。しかし、どのように、確かに。 –

関連する問題