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