Я использую PIL (библиотеку изображений Python), чтобы сделать некоторые манипуляции с изображениями, в частности, я склеиваю изображения вместе.
Мой код работает нормально для некоторых изображений в небольших количествах, но иногда я получаю MemoryError
.
Что особенно странно для меня, так это то, что я не делаю манипуляций с битовыми изображениями, все это работает с <10 изображениями размером менее 10 КБ. </p>
Я много звоню на 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 или есть что-то более простое, что я могу сделать?
Заранее спасибо за помощь!