python - 在 Python 中将 .svg 转换为非常大的 .bmp
问题描述
我们的实验室有一台激光刻录机,它可以拍摄黑白 .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 内存的计算机上崩溃。是否有任何库旨在为此类任务提供极高的内存效率?或者当前的库是否有显着的优化?
解决方案
解决方案是 ImageMagick,它将超大图像的部分缓存到磁盘以防止内存不足。存在命令提示符工具和该工具的 Python 包装器。
推荐阅读
- r - 如何将 hjust 与 geom_text 一起使用?
- javascript - Spring RSocket Security + RSocket-WebSocket-Client(浏览器)
- azure - 从守护程序应用程序调用 Azure 中的 ASP .NET Core API
- python - 时间对象列表中的值显示为“时间”而不是 hh:mm:ss 格式
- java - Spark 未利用 GPU taskResourceAssignments Map(gpu -> [0]
- python - 如何在 Python 中从 txt 文件制作字典
- multithreading - 使用 vwait 的 Tcl 线程产生随机结果
- javascript - 在不使用 JQueryUI 的情况下限制可拖动的 div
- javascript - 渲染多个(数百甚至数千)Web 组件
- python - 如何根据 matplotlib 中的单元格字符串以彩色网格方式绘制时间序列?