2009-08-12 26 views

cevap

15

Yük bunun için gtk.gdk.Pixbuf kullanarak bir dosyadan resim:

import gtk 
pixbuf = gtk.gdk.pixbuf_new_from_file('/path/to/the/image.png') 

sonra ölçek:

Sonra
pixbuf = pixbuf.scale_simple(width, height, gtk.gdk.INTERP_BILINEAR) 

, bir gtk.Image kullanmak istiyorsanız, Widget'ı sandıklayıp görüntüyü pixbuf'tan ayarlayın. doğrudan bir şekilde

image = gkt.Image() 
image.set_from_pixbuf(pixbuf) 

Ya da belki:

image = gtk.image_new_from_pixbuf(pixbuf) 
+0

biz de .... ben aynı şeyler için ama C ve GTK altında arıyorum C Bu çözümü alabilir miyim + .... GtkImage * image = gtk_image_new_from_file() öğesini kullanma – User7723337

6

Bu sadece yükleme önce onları ölçekli daha etkili olabilir. Özellikle de çok büyük JPEG'lerden 96x96 küçük resim yüklemek için bu işlevleri kullandığım için hala çok hızlı düşünüyorum. URL'den görüntüyü ölçeklendirme

gtk.gdk.pixbuf_new_from_file_at_scale(..) 
gtk.gdk.pixbuf_new_from_file_at_size(..) 
1

(scale reference)

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() 

     self.response=urllib2.urlopen(
      'http://192.168.1.11/video/1024x768.jpeg') 

     self.loader=gtk.gdk.PixbufLoader()   
     self.loader.set_size(200, 100) 
     #### works but throwing: glib.GError: Unrecognized image file format  
     self.loader.write(self.response.read()) 
     self.loader.close() 
     self.image.set_from_pixbuf(self.loader.get_pixbuf()) 

     self.window.add(self.image) 
     self.image.show() 


     self.window.show() 

    def main(self): 
     gtk.main() 

if __name__ == "__main__": 
    MainWin().main() 

* DÜZENLEME: (egzersiz düzeltme) *

try: 
    self.loader=gtk.gdk.PixbufLoader()   
    self.loader.set_size(200, 100) 

      # ignore tihs: 
      # glib.GError: Unrecognized image file format  

    self.loader.write(self.response.read()) 
    self.loader.close() 
    self.image.set_from_pixbuf(self.loader.get_pixbuf()) 

except Exception, err: 
    print err 
    pass