【问题标题】:Convert .svg to extremely large .bmp in Python在 Python 中将 .svg 转换为非常大的 .bmp
【发布时间】:2021-05-31 12:49:34
【问题描述】:

我们的实验室有一台激光刻录机,它可以拍摄黑白 .bmp 图像,并使用这些图像来确定平面上的哪些点会被激光照亮。每个像素是一个固定的区域单位,为了使总写入量达到我们需要的大小,我们需要一个大约 50,000x50,000 像素的 .bmp。

我们需要从 .svg 文件生成那些 .bmp 文件。我有 python 代码可以为相对较小的图像做到这一点

from svglib.svglib import svg2rlg
from reportlab.graphics import renderPM

drawing = svg2rlg(outfile + '.svg')
renderPM.drawToFile(drawing, outfile + '.bmp', fmt='BMP')

但是当尝试创建我们需要的大图像之一时,Python 内存不足并在 32GB 内存的计算机上崩溃。是否有任何库旨在为此类任务提供极高的内存效率?或者当前的库是否有显着的优化?

【问题讨论】:

  • 只是为了确定:您运行的是 Python 的 64 位变体?
  • @MichaelButscher 根据这个this method,是的

标签: python image memory memory-management out-of-memory


【解决方案1】:

解决方案是 ImageMagick,它将超大图像的部分缓存到磁盘以防止内存不足。存在命令提示工具和该工具的 Python 包装器。

【讨论】:

  • 对于任何想知道的人; wand 就是这样一种 ImageMagick python 绑定
猜你喜欢
  • 2020-08-13
  • 2015-11-20
  • 2019-10-17
  • 2013-10-04
  • 2019-11-28
  • 2019-02-15
  • 1970-01-01
  • 2011-04-30
  • 1970-01-01
相关资源
最近更新 更多