Tôi đang sử dụng PIL (thư viện hình ảnh python) để thực hiện một số thao tác hình ảnh, đặc biệt là tôi ghép các hình ảnh lại với nhau.Làm cách nào để tìm hiểu lý do sử dụng chức năng PIL là do lỗi bộ nhớ?
Mã của tôi có vẻ hoạt động tốt đối với một số hình ảnh với số lượng nhỏ, nhưng đôi khi tôi nhận được MemoryError
.
Phần đặc biệt lạ đối với tôi là tôi không thực hiện thao tác trên ảnh bit, tất cả đều hoạt động với < 10 hình ảnh dưới 10kb.
Tôi đang thực hiện rất nhiều cuộc gọi đến Image.resize
, nhưng tôi ngạc nhiên rằng có những vấn đề quan trọng từ đó.
Đây là chồng theo dõi:
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
Hãy ghi nhớ những hình ảnh đều ít hơn 90x90 pixel.
Tôi rất nhiều ở điểm chết và thực sự không chắc chắn cách tiếp tục. Tôi có thể làm gì để giải phóng bộ nhớ? Tôi có nên gọi cho nhà điều hành del hoặc có điều gì đơn giản hơn tôi có thể làm không? Cảm ơn trước sự giúp đỡ của bạn!
kiểm tra để đảm bảo rằng bạn không định kích thước thành kích thước âm. Xem mức sử dụng bộ nhớ của bạn khi bạn chạy quy trình để xem bộ nhớ có tăng kích thước trước khi nó bị chết hay không. –
Cảm ơn Winston, bạn đã hoàn toàn đúng! – jkarm