使用 Python 以高分辨率从 PDF 中提取图像
Extract images from PDF in high resolution with Python
我已经成功地使用下面的代码从几个 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)
我也尝试过使用代码 here 并将 if pix.n < 5" 更新为 "if pix.n - pix.alpha < 4 但这没有输出在我的案例中有任何图像。
如本期 PyMuPDF 所述,您必须使用矩阵:
issue on Github.
给出的例子是:
zoom = 2 # zoom factor
mat = fitz.Matrix(zoom, zoom)
pix = page.getPixmap(matrix = mat, <...>)
问题中还指出,如果您不使用矩阵,则默认分辨率为 72 dpi,这可能解释了您获得低分辨率的原因。
我已经成功地使用下面的代码从几个 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)
我也尝试过使用代码 here 并将 if pix.n < 5" 更新为 "if pix.n - pix.alpha < 4 但这没有输出在我的案例中有任何图像。
如本期 PyMuPDF 所述,您必须使用矩阵: issue on Github.
给出的例子是:
zoom = 2 # zoom factor
mat = fitz.Matrix(zoom, zoom)
pix = page.getPixmap(matrix = mat, <...>)
问题中还指出,如果您不使用矩阵,则默认分辨率为 72 dpi,这可能解释了您获得低分辨率的原因。