2010-10-18 15 views
6

Pisałem ten prosty skrypt w Pythonie:Jak wyświetlić obraz z Internetu?

import gtk 

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

window.show() 
gtk.main() 

teraz chcę, aby załadować w tym oknie obrazu z sieci (a nie z komputera) tak:

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

Jak czy mogę to zrobić ?

P.S. Nie chcę pobrać obrazu! Chcę tylko załadować obraz z adresu URL.

+0

„PS Nie chcę pobrać obraz po prostu chcesz załadować obraz z URL. " To sprzeczność. "Załaduj" == "Pobierz". Jedyną ** rzeczą, którą robisz z obrazem w sieci, jest pobieranie. Nie ma innych opcji. Co próbujesz zrobić? –

Odpowiedz

15

ten pobiera obraz z adresu URL, ale zapisuje dane w gtk.gdk.Pixbuf zamiast do pliku:

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
  1. Pobierz zdjęcie. Google o tym, jak pobierać pliki w Pythonie, są łatwe w użyciu biblioteki.

  2. Załaduj obraz do widgetu. Sprawdź, jak wyświetlić obraz w GTK.

Przepraszamy za brak szczegółów, ale odpowiedź będzie długa i lepiej będzie, jeśli będziesz czytać te tematy gdzieś indziej.

Mam nadzieję, że pomoże!

+0

Użyłbym GTK, aby pobrać go zamiast Pythona, ale poza tym tak. –

+0

Nie chcę pobierać obrazu! Chcę tylko załadować obraz z adresu URL :) – xRobot

+0

@xRobot: Jak myślisz, co dokładnie ładowało obraz z adresu URL? –

1

Oto prosty skrypt przy użyciu 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() 

biorą pod uwagę jednak, że robi to w rzeczywistości pobrać obraz.

+1

Wymaga to również pywebkitgtk, co nie jest małym wymaganiem. –

+0

Przypuszczam, że możesz także użyć libsoup, ale myślę, że to najlepiej pasuje do potrzeb PO ;-) – ptomato

Powiązane problemy