【发布时间】:2015-01-23 12:51:28
【问题描述】:
我有以下 Python 代码。问题是内存使用量急剧增加。
鉴于Image.rotate() 返回一个新对象,我会认为旧对象不能再引用它并被删除。
问题
会发生什么,我该如何解决?
代码
from PIL import Image
src_im = Image.open("input.png")
steps = 120 # Works with 3
angle = 360.0 / steps
rotation = src_im.convert('RGBA')
for _ in xrange(steps):
rotation = rotation.rotate(angle, expand = 1)
rotation = rotation.crop(rotation.getbbox()).resize(src_im.size)
rotation.save("out.png")
这是在 Python 2.7.3 中。 Python 3 特定的解决方案是可以接受的。
【问题讨论】:
-
有趣。我刚刚尝试过:gc.collect 和显式 del,但没有任何帮助。
标签: python memory garbage-collection python-imaging-library