使用PIL时释放内存

ryn*_*ynd 6 python garbage-collection rotation python-imaging-library

我正在用PIL(Python Imaging Library)编辑图像.在每一步(转换,旋转,调整大小......)上创建了更多图像.(摘自文档:"返回旋转给定度数的图像副本......")所以我想释放内存.

你知道以下方法是否可以节省内存吗?

import PIL.Image

image = PIL.Image.open('Image.jpg')
garbage = image
image = image.convert('RGB')
del garbage
Run Code Online (Sandbox Code Playgroud)

K. *_*ord 5

您不需要进行临时garbage参考。

执行此语句的右侧时:

image = image.convert('RGB')
Run Code Online (Sandbox Code Playgroud)

创建了一个新的 Python 对象。

通过将其分配回用于表示image的旧对象,image其引用计数减少到零,并被发送到垃圾收集器。

然而,与 Python 的工作方式无关,我已经看到 PIL 问题,因为真正的错误内存泄漏已经形成。例如,这里讨论了使用 Draw 文本时的问题:

PIL 绘制文本内存泄漏

我知道这是一个非常古老的讨论,但是当我使用 PIL 时,我仍然看到有时会出现这种情况!