将缩放实现到cairo-drawn canvas的最高效方法是什么?

时间:2011-05-18 18:15:50

标签: python wxpython cairo

我使用wx.ScrolledWindow绘制了cairo。我已经实现了缩放功能,现在可以重绘整个内容。 但由于最多可绘制200条曲线,因此我应考虑采用更高效的解决方案。

我想到了这些:

  • 缓冲图像的缩放系数-1 / + 1(消耗内存)
  • 使用librsvg并缓冲一个SVG图像(我已经读过一些关于此的内容.librsvg也可以在Windows下运行吗?)
  • 在绘制曲线组之后存储cairo.Context,并在缩放时恢复它(只是一个想法......可能吗?)

还有其他可能性,并且:最佳解决方案是什么?

非常感谢

2 个答案:

答案 0 :(得分:1)

对你的问题不是一个具体的答案,但我遇到了同样的问题,只是切换到已经实现了缩放和平移功能的matplotlib。我不确定它是否超级高效。我觉得我的程序之前运行得更顺畅。 我也试过了floatcanvas和floatcanvas2但是对它们都不满意。

答案 1 :(得分:1)

如果你是双缓冲,为什么不在等待新重绘的矢量图像时快速将位图缩放作为“预览”呢?我承认我不知道该怎么做。但如果你可以使它工作,它应该工作! :)