Gtk.Imageオブジェクトを返す外部APIを使用しています。そのGtk.Imageをファイルに書き込もうとしています。問題を説明するために、次のコードを作成しました。
from gi.repository import Gtk
import cStringIO
i = Gtk.Image()
i.set_from_file('/home/leon/Pictures/msn/ikea.jpg')
p = i.get_pixbuf()
f = open('/tmp/test.png', 'wb+')
def write(*args, **kwargs):
f.write(args[0])
return True
# ubuntu 11.10 doesn't have pixbuf.save_to_callback so instead use save_to_callbackv
p.save_to_callbackv(write, None, "png", [], [])
f.close()
ファイルはディスクに書き込まれますが、破損しています。なぜ破損しているのですか?