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