> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 기본 해상도 및 형식으로 PDF 문서에서 이미지를 추출하는 방법은 무엇입니까?

Python에서 기본 해상도 및 형식으로 PDF 문서에서 이미지를 추출하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-22 07:55:30
원래의
681명이 탐색했습니다.

How to Extract Images from PDF Documents with Native Resolution and Format in Python?

기본 해상도 및 형식으로 PDF 문서에서 이미지 추출

PDF 문서 작업 시 원본 해상도 및 형식으로 이미지를 추출할 수 있습니다. 중대한. 이렇게 하면 추출된 이미지가 원본 문서와 동일한 품질과 무결성을 유지할 수 있습니다. 이 기사에서는 리샘플링 없이 Python의 PDF 문서에서 이미지를 추출하여 기본 형식의 고품질 이미지를 얻을 수 있는 솔루션을 제시합니다.

이미지 추출을 위한 PyMuPDF

PDF 조작을 위한 가장 인기 있는 Python 모듈 중 하나는 PyMuPDF입니다. 이 모듈은 기본 해상도와 형식을 유지하면서 PDF 문서에서 이미지를 추출하는 강력한 방법을 제공합니다. 다음은 PyMuPDF를 사용하는 코드 조각입니다.

<code class="python">import fitz

# Open the PDF document
doc = fitz.open("file.pdf")

# Iterate through pages and images
for i in range(len(doc)):
    for img in doc.getPageImageList(i):
        xref = img[0]

        # Convert picture object to PNG
        pix = fitz.Pixmap(doc, xref)
        if pix.n < 5:  # grayscale 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</code>
로그인 후 복사

이 코드는 PDF 문서의 모든 페이지와 이미지를 반복하여 PNG 파일로 추출합니다. 각 이미지의 기본 해상도와 형식을 유지하여 고품질 이미지를 얻을 수 있습니다.

업데이트된 PyMuPDF의 수정 버전

최신 버전을 사용하는 경우 PyMuPDF 버전(예: 1.19.6)의 경우 위 코드를 약간 수정해야 할 수도 있습니다. 다음 코드 조각은 필요한 변경 사항을 반영합니다.

<code class="python">import os
import fitz
from tqdm import tqdm

# Set working directory
workdir = "your_folder"

# Process PDF files in the directory
for each_path in os.listdir(workdir):
    if ".pdf" in each_path:
        # Open the PDF document
        doc = fitz.Document((os.path.join(workdir, each_path)))

        # Iterate through pages and images
        for i in tqdm(range(len(doc)), desc="pages"):
            for img in tqdm(doc.get_page_images(i), desc="page_images"):
                xref = img[0]

                # Extract the image and save it as PNG
                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)))

# Print a completion message
print("Done!")</code>
로그인 후 복사

이 수정된 코드는 get_page_images() 메서드를 사용하여 이미지를 가져와 지정된 작업 디렉터리에 PNG 파일로 저장합니다.

위 내용은 Python에서 기본 해상도 및 형식으로 PDF 문서에서 이미지를 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿