मैं कुछ छवि मैनिपुलेशन करने के लिए पीआईएल (पायथन छवि लाइब्रेरी) का उपयोग कर रहा हूं, विशेष रूप से मैं एक साथ छवियों को सिलाई कर रहा हूं।मैं कैसे पता लगा सकता हूं कि पीआईएल कार्यों का उपयोग क्यों स्मृति त्रुटि में होता है?
मेरा कोड छोटी मात्रा में कुछ छवियों के लिए ठीक काम करता प्रतीत होता है, लेकिन कभी-कभी मैं और MemoryError
प्राप्त करता हूं।
भाग जो मेरे लिए विशेष रूप से अजीब बात है कि मैं बिट छवियों पर कुशलता नहीं कर रहा हूं, यह सब 0k10kb के तहत 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 पिक्सल हैं:
यहाँ ढेर ट्रैक है।
मैं एक मृत अंत में बहुत अधिक हूं और वास्तव में यह सुनिश्चित नहीं करता कि आगे कैसे बढ़ना है। स्मृति जारी करने के लिए मैं क्या कर सकता हूं? क्या मुझे डेल ऑपरेटर को कॉल करना चाहिए या क्या मैं कुछ आसान कर सकता हूं? आपकी मदद के लिए अग्रिम धन्यवाद!
यह सुनिश्चित करने के लिए जांचें कि आप नकारात्मक आकार का आकार नहीं दे रहे हैं। जब आप प्रक्रिया को चलाते हैं तो यह देखने के लिए मेमोरी उपयोग देखें कि स्मृति मरने से पहले आकार में बढ़ रहा है या नहीं। –
धन्यवाद विंस्टन, आप बिल्कुल सही थे! – jkarm