首页 > 解决方案 > 使用 Python 从 PDF 中提取高分辨率图像

问题描述

我已经设法使用以下代码从几个 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 但这在我的情况下没有输出任何图像。

标签: pythonpdfpymupdf

解决方案


如本期 PyMuPDF 所述,您必须使用矩阵: Github 上的问题

给出的例子是:

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

问题中还指出,如果您不使用可能解释您的分辨率较低的矩阵,则默认分辨率为 72 dpi。


推荐阅读