Загрузить и показать изображение из Интернета на Python с помощью Gtk 3?

Я пишу приложение на Ubuntu 12.04 с Python и GTK 3. У меня проблема в том, что я не могу понять, как мне сделать, чтобы показать Gtk.Image в моем приложении с файлом изображения из Интернета. .

Это насколько я дошел:

from gi.repository import Gtk
from gi.repository.GdkPixbuf import Pixbuf
import urllib2

url = 'http://lolcat.com/images/lolcats/1338.jpg'
response = urllib2.urlopen(url)
image = Gtk.Image()
image.set_from_pixbuf(Pixbuf.new_from_stream(response))

Я думаю, что все правильно, кроме последней строки.

0
задан 19 July 2012 в 01:42

1 ответ

Согласно документам , new_from_stream() нужны Gio.InputStream и Gio.Cancellable в качестве аргументов.

Вы также можете сохранить изображение на диск и удалить при необходимости. Вот очень простой пример:

import os
import urllib2
from gi.repository import Gtk
from gi.repository.GdkPixbuf import Pixbuf


def quit_event(widget, event):
    os.remove(imgname)
    Gtk.main_quit()

imgname = '1338.jpg'
url = 'http://lolcat.com/images/lolcats/'+imgname
response = urllib2.urlopen(url)
with open(imgname, 'wb') as img:
    img.write(response.read())

image = Gtk.Image()
pb = Pixbuf.new_from_file(imgname)
image.set_from_pixbuf(pb)

window = Gtk.Window()
window.connect('delete-event', quit_event)
window.add(image)
window.show_all()
Gtk.main()

Вы должны написать в лучшее место, хотя, возможно, / tmp или указанный пользователем каталог.

0
ответ дан 19 July 2012 в 01:42

Другие вопросы по тегам:

Похожие вопросы: