gpt4 book ai didi

python - 开罗的大图像

转载 作者:太空狗 更新时间:2023-10-30 01:30:41 24 4
gpt4 key购买 nike

我必须使用 cairo 渲染一个非常大的图像(>50.000² 像素)。为了在不耗尽内存的情况下执行此操作,我一个接一个地渲染部分图像(<1.000² 像素),然后将它们合并在一起。

  1. 创建 1000x1000 表面
  2. 翻译到当前部分的位置
  3. 绘制图像(使用pycairo调用绘图指令)
  4. 渲染/保存图像到文件 (cairo_surface_write_to_png)
  5. 重复下一部分

因为 cairos 裁剪算法比我自己的快,第三步绘制整个图像,即使只有一部分可见。大部分 CPU 用于第 3 步(通过 python)。大部分内存用于第 4 步(由 cairo)。

有没有办法加快速度?是这样的吗?

  1. 创建 1000x1000 表面
  2. 画图
  3. 将所有内容移动到当前部分的位置
  4. 渲染图像/将图像保存到文件
  5. 在下一部分重复 3

  1. 创建 50000x50000 表面
  2. 画图
  3. 只渲染/保存图像的当前部分到文件
  4. 在下一部分重复 3

最佳答案

首先,使用 C 或 Vala 而不是 Python 可能会加快速度。

至于内存使用,我会尝试写入我自己的流,而不是文件(参见 write_to_png_stream )。这可以允许您(我没有尝试过)控制内存使用,假设 Cairo 不会在所有操作完成后只调用您的函数一次。

关于python - 开罗的大图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/614949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com