기본 해상도 및 형식으로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!