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

Susan Sarandon
Lepaskan: 2024-10-22 07:53:30
asal
644 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!