【发布时间】:2009-03-05 14:19:46
【问题描述】:
我必须用 cairo 渲染一个非常大的图像(>50.000² 像素)。为了在不耗尽内存的情况下做到这一点,我一个接一个地渲染图像的一部分(
- 创建 1000x1000 曲面
- 翻译到当前零件的位置
- 画图(使用pycairo调用绘图指令)
- 渲染/保存图像到文件 (cairo_surface_write_to_png)
- 下一部分重复
因为 cairos 裁剪算法比我自己的更快,所以第三步绘制了整个图像,即使只有一部分可见。大部分 CPU 用于第 3 步(通过 python)。大部分内存用于第 4 步(由 cairo)。
有没有办法加快速度?像这样?
- 创建 1000x1000 曲面
- 画图
- 将所有内容移动到当前部分的位置
- 渲染/保存图像到文件
- 下一部分重复 3
或
- 创建 50000x50000 曲面
- 画图
- 仅将图像的当前部分渲染/保存到文件中
- 下一部分重复 3
【问题讨论】: