如何使用 Python 從 PDF 中提取高解析度圖像而不改變尺寸?

Susan Sarandon
發布: 2024-10-22 07:53:30
原創
645 人瀏覽過

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

在Python 中從PDF 中提取本機分辨率圖像而無需重新採樣

從PDF 中以其本機分辨率和格式提取圖像,同時保留佈局可以是一個挑戰。然而,Python 的 PyMuPDF 模組提供了一個簡單的解決方案。

使用 PyMuPDF

PyMuPDF 可以將圖像輸出為 PNG 文件,確保高解析度並保持原始格式(例如 TIFF) ,JPEG)。下面的程式碼示範了它的用法:

<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>
登入後複製

Fitz 1.19.6的修改版本

對於最新版本的fitz(1.19.6),修改如下可使用程式碼:

<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>
登入後複製

此修改程式碼利用tqdm進行進度條顯示,並最佳化影像擷取與儲存流程。

以上是如何使用 Python 從 PDF 中提取高解析度圖像而不改變尺寸?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!