python gir / Gtk.Image: почему он портит мой образ? - PullRequest
1 голос
/ 05 февраля 2012

Я работаю с внешним API, который возвращает объект Gtk.Image.Я пытаюсь записать это 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()

Файл записывается на диск, но поврежденПочему он поврежден?

1 Ответ

1 голос
/ 05 февраля 2012

Вот немного более короткая (и рабочая) версия:

from gi.repository import Gtk

i = Gtk.Image()
i.set_from_file('/home/leon/Pictures/msn/ikea.jpg')

p = i.get_pixbuf()
p.savev('/tmp/xxx.png', 'png', [], [])

Хотя я не уверен, что не так с вашей версией: S

...