Wie kann ich in GTK ein Bild skalieren? Momentan lade ich Bilder mit PIL und skaliere sie vorher, aber gibt es eine Möglichkeit, es mit GTK zu machen?Skalieren eines Bildes in GTK
13
A
Antwort
15
Legen Sie das Bild aus einer Datei, die mit gtk.gdk.Pixbuf für:
import gtk
pixbuf = gtk.gdk.pixbuf_new_from_file('/path/to/the/image.png')
es dann maßstabs:
pixbuf = pixbuf.scale_simple(width, height, gtk.gdk.INTERP_BILINEAR)
Dann, wenn Sie es in einem gtk.Image verwenden möchten, Kiste das Widget und setze das Bild aus dem Pixbuf.
image = gkt.Image()
image.set_from_pixbuf(pixbuf)
Oder vielleicht auf direktem Weg:
image = gtk.image_new_from_pixbuf(pixbuf)
6
Es könnte effektiver sein, sie einfach vor dem Laden zu skalieren. Ich denke besonders, da ich diese Funktionen verwende, um 96x96 Thumbnails von manchmal sehr großen JPEGs zu laden, immer noch sehr schnell.
gtk.gdk.pixbuf_new_from_file_at_scale(..)
gtk.gdk.pixbuf_new_from_file_at_size(..)
1
Skala Bild von URL. (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()
* EDIT: (ausrechnen fix) *
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
Verwandte Themen
- 1. Skalieren eines Bildes in GWT
- 2. Skalieren eines Bildes auf Leinwand
- 3. Drehen und Skalieren eines Sprite-Bildes in COCOS2D Android
- 4. Skalieren und Zentrieren eines Bildes mit Hilfe von CSS
- 5. Skalieren eines Bildes mit einem Vector2 kleiner als
- 6. Imitieren eines Kontextmenüs in Gtk #/gtk-sharp
- 7. Skalieren eines Objekts in three.js
- 8. Charting in Gtk/Gtk #
- 9. Skalierung eines einzelnen Bildes mit verschiedenen Skalierungsfaktoren
- 10. Aktualisieren eines Bildes in einem Gtk # -Fenster, nach einer gewissen Zeit verschwindet das Bild
- 11. Hinzufügen eines Bildes in Jquery
- 12. Hashing eines Bildes in Javascript
- 13. Zentrieren eines Bildes in Javascript
- 14. Anzeige eines Bildes in Jade
- 15. Gtk Thema in GTK # (Windows)
- 16. Extrahieren eines Teils eines Bildes in LabView
- 17. Hinzufügen eines Programmsymbols in Python GTK
- 18. skalieren Spalten eines XTS-Objekts
- 19. FFT eines Bildes
- 20. Schiefe eines Bildes Java
- 21. Skalieren eines Canvas in einem Template-Benutzercontrol
- 22. Hinzufügen eines Bildes zu einem PDF mit iTextSharp und skalieren Sie es richtig
- 23. wie Ecke eines Bildes
- 24. Drehen eines Bildes kontinuierlich
- 25. Code zum Umdrehen eines BMP-Bildes in C
- 26. GTK Anzeige eines Dialogfelds aus einem Dialogfeld
- 27. ios Decode Teil eines Bildes
- 28. wp_localize_script zum Einfügen eines Bildes
- 29. Kopieren eines Bildes - Excel VBA
- 30. Vorschau eines Bildes mit TFileOpenDialog
Können wir diese Lösung in C haben auch .... Ich bin für gleiches Material suchen, aber unter C und GTK + .... Mit GtkImage * image = gtk_image_new_from_file() – User7723337