Я использую PIL (библиотеку изображений python), чтобы сделать некоторые манипуляции с изображениями, в частности, я сшиваю изображения вместе.
Мой код, кажется, отлично работает для некоторых изображений в небольших количествах, но иногда я и получаю MemoryError
.
Часть, которая особенно странна для меня, заключается в том, что я не делаю манипуляции с битовыми изображениями, все это работает с < 10 изображениями под 10kb.
Я делаю много звонков на Image.resize
, но я удивлен, что из этого есть существенные проблемы.
Вот трек стека:
Traceback (most recent call last):
File "test.py", line 15, in <module>
pprint(scale_matrix_down((90,90), [inpt]))
File "/Users/jeremykarmel/Desktop/Python/merger.py", line 105, in scale_matrix_down
return [shrinkRow(row, row_width_overflow(row)) for row in matrix]
File "/Users/jeremykarmel/Desktop/Python/merger.py", line 103, in shrinkRow
rest = [shrinkIm(im, pixels_per_im) for im in row[remaining_pixels:]]
File "/Users/jeremykarmel/Desktop/Python/merger.py", line 110, in shrinkIm
return im.resize((im.size[0] - num_pix, im.size[1] - num_pix))
File "/Library/Python/2.7/site-packages/PIL/Image.py", line 1302, in resize
im = self.im.resize(size, resample)
MemoryError
Помните, что все изображения меньше 90x90 пикселей.
Я очень в тупике и действительно не уверен, как действовать дальше. Что я могу сделать, чтобы освободить память? Должен ли я звонить оператору del или есть что-то более простое, что я могу сделать? Заранее благодарим за помощь!