所以,我想使用 PyCairo 绘制图像。效率非常重要,但我正在使用 PyGtk 的 gtk.gdk.Pixbuf 加载图像。我的问题是,通过 gtk.gdk.CairoContext 检索 Cairo 上下文与将 Pixbuf 转换为 cairo.ImageSurface 对象来渲染 Pixbuf 是否存在性能差异,如果是,差异有多大?这是在一个单独的绘图线程中运行的,该线程每秒更新 30 次左右(尽管仅在图像需要更新时)。请注意,转换只会运行一次。
gdkcr = gtk.gdk.CairoContext(cr)
gdkcr.set_source_pixbuf(img, 0, 0)
gdkcr.paint()
对比
cr.set_source(imgSurface)
cr.rectangle(0, 0, imgSurface.get_width(), imgSurface.get_height())
cr.fill()