そこで、PyCairo を使って画像を描きたいと思います。効率はかなり重要ですが、PyGtk の gtk.gdk.Pixbuf を使用して画像を読み込んでいます。私の質問は、gtk.gdk.CairoContext を介して Cairo コンテキストを取得して Pixbuf をレンダリングする場合と、Pixbuf を cairo.ImageSurface オブジェクトに変換する場合のパフォーマンスの違いはありますか? これは別の描画スレッドで実行され、1 秒間に約 30 回更新されます (ただし、画像の更新が必要な場合のみ)。変換は 1 回だけ実行されることに注意してください。
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()