Ich habe ein Bild/Pixbuf, das ich in eine gtk.DrawingArea zeichnen und häufig aktualisieren möchte, so dass die Blitting-Operation schnell sein muss. Tut es den einfachen Weg:Was ist der schnellste Weg, um ein Bild in Gtk + zu zeichnen?
def __init__(self):
self.drawing_area = gtk.DrawingArea()
self.image = gtk.gdk.pixbuf_new_from_file("image.png")
def area_expose_cb(self, area, event):
self.drawing_area.window.draw_pixbuf(self.gc, self.image, 0, 0, x, y)
führt jedoch zu sehr geringe Leistung, verursacht wahrscheinlich durch die pixbuf nicht in dem Displays Farbformat zu sein.
Ich hatte auch keinen Erfolg mit Kairo, da es auf 24/32-Bit-Formate beschränkt scheint und kein 16-Bit-Format hat (FORMAT_RGB16_565 wird nicht unterstützt und ist veraltet).
Welche Alternativen gibt es zum schnellen Zeichnen von Bildern in Gtk +?
Es ist Durchsatz flimmert nicht. Ich versuche ein interaktives Vollbild-Scrollen/Animieren auf dem OLPC zu machen, das nicht sehr schnell zu starten ist und darüber hinaus einen ziemlich großen Bildschirm hat und es in 16 Bit läuft. Das Gleiche in SDL funktioniert problemlos. Verwenden Sie eine gtk.Layout und verwenden Sie diese für das Scrollen ist ziemlich schnell zu, aber das manuelle Scrollen durch Zeichnen zu einem gtk.DrawingArea (wie ich später weitere Effekte hinzufügen möchten) ist vollständig unbrauchbar langsam. – Grumbel