Comment extraire des images haute résolution à partir de PDF à l'aide de Python sans modifier les dimensions ?

Susan Sarandon
Libérer: 2024-10-22 07:53:30
original
644 Les gens l'ont consulté

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

Extraire des images en résolution native à partir de PDF en Python sans rééchantillonnage

Extraire des images à partir de PDF avec leur résolution et format natifs tout en préservant la mise en page peut être un défi. Cependant, le module PyMuPDF de Python fournit une solution simple.

Utilisation de PyMuPDF

PyMuPDF peut générer des images sous forme de fichiers PNG, garantissant une haute résolution et conservant le format d'origine (par exemple, TIFF ,JPEG). Le code suivant démontre son utilisation :

<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>
Copier après la connexion

Version modifiée pour fitz 1.19.6

Pour la dernière version de fitz (1.19.6), le code modifié suivant le code peut être utilisé :

<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>
Copier après la connexion

Ce code modifié utilise tqdm pour l'affichage de la barre de progression et optimise le processus d'extraction et d'enregistrement des images.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!