Tôi có một hình ảnh/pixbuf mà tôi muốn vẽ thành một gtk.DrawingArea và làm mới thường xuyên, do đó thao tác nhấp nháy phải nhanh. Làm theo cách dễ dàng:Cách nhanh nhất để vẽ hình ảnh trong Gtk + là gì?
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)
Tuy nhiên dẫn đến hiệu suất rất chậm, có thể do pixbuf không có định dạng màu hiển thị.
Tôi cũng không thành công với Cairo, vì nó dường như bị giới hạn ở định dạng 24/32bit và không có định dạng 16bit (FORMAT_RGB16_565 không được hỗ trợ và không dùng nữa).
Có những lựa chọn thay thế nào để vẽ ảnh nhanh chóng trong Gtk +?
Thông lượng không nhấp nháy. Tôi đang cố gắng để làm một số tương tác toàn màn hình cuộn/animtion trên OLPC, mà không phải là rất nhanh để bắt đầu và có một màn hình khá lớn trên đó và nó chạy trong 16bit. Làm điều tương tự trong SDL hoạt động mà không có vấn đề gì. Sử dụng gtk.Layout và sử dụng để cuộn nhanh, nhưng thực hiện cuộn theo cách thủ công bằng cách vẽ đến gtk.DrawingArea (vì tôi có thể muốn thêm các hiệu ứng khác sau) hoàn toàn không sử dụng được. – Grumbel