ฉันกำลังเรียกใช้การแปลง PDF เป็นรูปภาพอย่างง่ายโดยใช้ไลบรารี Python PDF2Image ฉันเข้าใจได้อย่างแน่นอนว่าไลบรารีนี้ข้ามขีดจำกัดหน่วยความจำสูงสุดเพื่อให้ได้ข้อผิดพลาดนี้ แต่ PDF มีขนาด 6.6 MB (โดยประมาณ) แล้วเหตุใดจึงต้องใช้หน่วยความจำ GB จึงทำให้เกิดข้อผิดพลาดของหน่วยความจำ
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from pdf2image import convert_from_path
>>> pages = convert_from_path(r'C:\Users\aakashba598\Documents\pwc-annual-report-2017-2018.pdf', 200)
Exception in thread Thread-3:
Traceback (most recent call last):
File "C:\Users\aakashba598\AppData\Local\Programs\Python\Python37-32\lib\threading.py", line 917, in _bootstrap_inner
self.run()
File "C:\Users\aakashba598\AppData\Local\Programs\Python\Python37-32\lib\threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\aakashba598\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1215, in _readerthread
buffer.append(fh.read())
MemoryError
นอกจากนี้ อะไรคือวิธีแก้ปัญหาที่เป็นไปได้สำหรับเรื่องนี้?
อัปเดต: เมื่อฉันลดพารามิเตอร์ dpi จากฟังก์ชัน convert_from_path มันก็ใช้งานได้อย่างมีเสน่ห์ แต่ภาพที่ถ่ายมีคุณภาพต่ำ (ด้วยเหตุผลที่ชัดเจน) มีวิธีแก้ไขปัญหานี้หรือไม่? ชอบการสร้างภาพเป็นกลุ่มต่อชุดและการล้างหน่วยความจำทุกครั้ง ถ้ามีทางต้องทำอย่างไร?