Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengekstrak Imej Resolusi Tinggi daripada PDF Menggunakan Python tanpa Mengubah Dimensi?

Bagaimana untuk Mengekstrak Imej Resolusi Tinggi daripada PDF Menggunakan Python tanpa Mengubah Dimensi?

Susan Sarandon
Susan Sarandonasal
2024-10-22 07:53:30635semak imbas

How to Extract High-Resolution Images from PDFs Using Python without Altering Dimensions?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn