亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Python 從 PDF 中提取高分辨率圖像

使用 Python 從 PDF 中提取高分辨率圖像

慕田峪9158850 2023-07-27 16:42:21
我已成功使用以下代碼從多個 PDF 頁面中提取圖像,但分辨率相當低。有辦法調整嗎?import fitz? ??pdffile = "C:\\Users\\me\\Desktop\\myfile.pdf"doc = fitz.open(pdffile)for page_index in range(doc.pageCount):? ? page = doc.loadPage(page_index)??? ? pix = page.getPixmap()? ? output = "image_page_" + str(page_index) + ".jpg"? ? pix.writePNG(output)我還嘗試使用此處的代碼并將 if pix.n < 5" 更新為 "if pix.n - pix.alpha < 4 但這在我的情況下沒有輸出任何圖像。
查看完整描述

3 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

給出的例子是:

zoom?=?2????#?zoom?factor
mat?=?fitz.Matrix(zoom,?zoom)
pix?=?page.getPixmap(matrix?=?mat,?<...>)

該問題還指出,如果您不使用矩陣,則默認分辨率為 72 dpi,這可能解釋了您的分辨率較低的原因。


查看完整回答
反對 回復 2023-07-27
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

比制作矩陣更簡單,文檔顯示getPixmap()您可以使用該dpi參數來獲得更高分辨率:

pix?=?page.getPixmap(dpi=200)

這是從 v1.19.2 開始的新增內容。


查看完整回答
反對 回復 2023-07-27
?
森欄

TA貢獻1810條經驗 獲得超5個贊

為了獲得最佳質量,請使用“matrix”和“dpi”。該代碼解決了結果分辨率更高的問題。我實現了一個解決方案,以最佳質量轉換文件夾中的所有文件:


# pip install fitz

# pip install pip install PyMuPDF==1.19.0


import fitz

import glob


for filename in glob.glob("*.pdf"):

    pdffile = filename

    doc = fitz.open(pdffile)

    for page_index in range(doc.pageCount):

        try:

            page = doc.load_page(page_index)  

            zoom = 2 

            mat = fitz.Matrix(zoom, zoom)

            pix = page.get_pixmap(matrix = mat,dpi=1200)

            output = '_' + filename.replace(".pdf","") + "-" + str(page_index) + ".png"

            pix.save(output)

        except Exception as e:

            print(str(filename) + ' > ' + str(e))    

    doc.close()


查看完整回答
反對 回復 2023-07-27
  • 3 回答
  • 0 關注
  • 414 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號