我有一个图像/pixbuf,我想把它画成gtk图纸区域并且经常刷新,所以bliting操作必须很快。简单易行:
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)
但是,这会导致性能非常慢,可能是由于pixbuf不是显示颜色格式造成的。在
我在Cairo上也没有成功,因为它似乎仅限于24/32位格式,而且没有16位格式(格式_RGB16_565不受支持且不推荐使用)。在
在Gtk+中,除了快速绘制图片,还有哪些替代方法?在
尝试创建与绘图区域使用相同颜色贴图的Pixmap。在
然后用
^{pr2}$你真的没有产生足够的原始速度/吞吐量吗?或者只是你看到了闪烁?在
如果是后者,也许您应该研究双缓冲来执行更新?基本上,这个想法是绘制到一个不可见的缓冲区,然后告诉显卡使用新的缓冲区。在
也许你可以看看这个有information on double buffering的页面。在
它可能值得做一些基准-如果你画一个小面积仍然缓慢?在
如果是的话,也许值得在pygtk或gtk邮件列表上询问。。。在
相关问题 更多 >
编程相关推荐