Mengekstrak Imej Resolusi Asli daripada PDF dalam Python tanpa Pensampelan Semula
Mengekstrak imej daripada PDF dengan resolusi dan format aslinya sambil mengekalkan reka letak boleh satu cabaran. Walau bagaimanapun, modul PyMuPDF Python menyediakan penyelesaian yang mudah.
Menggunakan PyMuPDF
PyMuPDF boleh mengeluarkan imej sebagai fail PNG, memastikan resolusi tinggi dan mengekalkan format asal (cth., TIFF , JPEG). Kod berikut menunjukkan penggunaannya:
<code class="python">import fitz doc = fitz.open("file.pdf") for i in range(len(doc)): for img in doc.getPageImageList(i): xref = img[0] pix = fitz.Pixmap(doc, xref) if pix.n < 5: # GRAY or RGB pix.writePNG("p%s-%s.png" % (i, xref)) else: # CMYK pix1 = fitz.Pixmap(fitz.csRGB, pix) pix1.writePNG("p%s-%s.png" % (i, xref)) pix1 = None pix = None</code>
Versi Diubah Suai untuk fitz 1.19.6
Untuk versi terkini fitz (1.19.6), yang berikut diubah suai kod boleh digunakan:
<code class="python">import os import fitz from tqdm import tqdm workdir = "your_folder" for each_path in os.listdir(workdir): if ".pdf" in each_path: doc = fitz.Document((os.path.join(workdir, each_path))) for i in tqdm(range(len(doc)), desc="pages"): for img in tqdm(doc.get_page_images(i), desc="page_images"): xref = img[0] image = doc.extract_image(xref) pix = fitz.Pixmap(doc, xref) pix.save(os.path.join(workdir, "%s_p%s-%s.png" % (each_path[:-4], i, xref)))</code>
Kod yang diubah suai ini menggunakan tqdm untuk paparan bar kemajuan dan mengoptimumkan pengekstrakan imej dan proses penyimpanan.
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Imej Resolusi Tinggi daripada PDF Menggunakan Python tanpa Mengubah Dimensi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!