Как вывести изображение из Интернета? - PullRequest
6 голосов
/ 18 октября 2010

Я написал этот простой скрипт на python:

import gtk

window = gtk.Window()
window.set_size_request(800, 700)

window.show()
gtk.main()

Теперь я хочу загрузить в это окно изображение из Интернета (а не с моего компьютера), например:

http://www.dailygalaxy.com/photos/uncategorized/2007/05/05/planet_x.jpg

Как я могу это сделать?

P.S. Я не хочу загружать изображение! Я просто хочу загрузить изображение с URL.

Ответы [ 3 ]

15 голосов
/ 18 октября 2010

Это загружает изображение из URL, но записывает данные в gtk.gdk.Pixbuf вместо файла:

import pygtk
pygtk.require('2.0')
import gtk
import urllib2

class MainWin:

    def destroy(self, widget, data=None):
        print "destroy signal occurred"
        gtk.main_quit()

    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.connect("destroy", self.destroy)
        self.window.set_border_width(10)
        self.image=gtk.Image()
        response=urllib2.urlopen(
            'http://www.dailygalaxy.com/photos/uncategorized/2007/05/05/planet_x.jpg')
        loader=gtk.gdk.PixbufLoader()
        loader.write(response.read())
        loader.close()        
        self.image.set_from_pixbuf(loader.get_pixbuf())
        # This does the same thing, but by saving to a file
        # fname='/tmp/planet_x.jpg'
        # with open(fname,'w') as f:
        #     f.write(response.read())
        # self.image.set_from_file(fname)
        self.window.add(self.image)
        self.image.show()
        self.window.show()

    def main(self):
        gtk.main()

if __name__ == "__main__":
    MainWin().main()
3 голосов
/ 18 октября 2010
  1. Загрузить изображение. Google о том, как скачивать файлы с python, для этого есть простые в использовании библиотеки.

  2. Загрузить изображение в виджет. Посмотрите, как отобразить изображение в GTK.

Извините за отсутствие подробностей, но ответ будет длинным, и вам все равно будет лучше читать эти темы где-то еще.

Надеюсь, это поможет!

1 голос
/ 18 октября 2010

Вот простой скрипт, использующий WebKit:

#!/usr/bin/env python
import gtk
import webkit

window = gtk.Window()
window.set_size_request(800, 700)
webview = webkit.WebView()
window.add(webview)
window.show_all()

webview.load_uri('http://www.dailygalaxy.com/photos/uncategorized/2007/05/05/planet_x.jpg')

gtk.main()

Обратите внимание, однако, что это действительно загружает изображение.

...