GTK'da bir resmi nasıl ölçeklendirebilirim? Şu anda görüntüleri PIL ile yüklüyorum ve bunları önceden ölçeklendiriyorum, ancak GTK ile bunu yapmanın bir yolu var mı?GTK içinde görüntüyü ölçeklendirme
13
A
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:
Sonrapixbuf = 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)
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
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
İlgili konular
- 1. GTK +
- 2. ggplot2 - çoklu ölçeklendirme ölçeklendirme
- 3. CALayer içeriğinin boyutunu ölçeklendirme
- 4. Web'den bir dosya alın: GTK içinde C
- 5. CodeBlocks içinde GTK yok zlib1.dll içinde deflateSetHeader
- 6. GTK # .NET Uygulama ayrı GTK gerektirmeden # Install
- 7. gtk textview
- 8. Resimlerin boyutuna göre ölçeklendirme Pygame
- 9. Yatay ölçeklendirme için
- 10. UIView break kısıtlaması ölçeklendirme
- 11. Görüntü ölçeklendirme ve WPF
- 12. gtk çizim alanını yenileme
- 13. GTK + kullanıcı arabirimi testi
- 14. Haskell gtk Tipi Çatışmalar
- 15. GTK # + WebKit + Windows
- 16. Qt vs GTK + performans
- 17. kurulum gtk ve glib
- 18. Yığınlama GTK + parçacıkları
- 19. gtk -Linux, MonoDevelop
- 20. böyle Gtk Improt deneyin
- 21. ASP.NET oturum durumu sunucusu ölçeklendirme
- 22. Otomatik ölçeklendirme sorunu: Karakterin sayımı
- 23. Otomatik ölçeklendirme Azure SQL Veritabanı
- 24. Gitlab koşucusu + otomatik ölçeklendirme + ölçeklenmiş koşucu seçenekleri
- 25. GTK + Uygulamasını Mac OSX'e Aktarma
- 26. Valada gtk/glade nasıl kullanılır
- 27. GTK Bir iletişimde etiketleme etiketi
- 28. GTK ile sorun giderme sorunları
- 29. Bir GTK + uygulamasında kaydırma sürükleme
- 30. py2exe ile Bundling GTK kaynakları
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