如何在Python中从 PDF 中提取图像?
在本文中,任务是在Python中从 PDF 中提取图像。我们将从 PDF 文件中提取图像并使用 PyMuPDF 库保存它们。首先,我们必须使用 Pillow 安装 PyMuPDF 库。
pip install PyMuPDF Pillow
PyMuPDF 用于访问 PDF 文件。要从 PDF 文件中提取图像,我们需要按照以下步骤操作-
- 导入必要的库
- 指定要从中提取图像的文件的路径并打开它
- 遍历 PDF 的所有页面并获取每个页面上存在的所有图像对象
- 使用getImageList()方法获取所有图像对象作为元组列表
- 要以字节为单位获取图像以及有关图像的附加信息,请使用extractImage()
注意:要下载 PDF 文件,请单击此处。
下面是实现。
Python3
# STEP 1
# import libraries
import fitz
import io
from PIL import Image
# STEP 2
# file path you want to extract images from
file = "/content/pdf_file.pdf"
# open the file
pdf_file = fitz.open(file)
# STEP 3
# iterate over PDF pages
for page_index in range(len(pdf_file)):
# get the page itself
page = pdf_file[page_index]
image_list = page.getImageList()
# printing number of images found in this page
if image_list:
print(f"[+] Found a total of {len(image_list)} images in page {page_index}")
else:
print("[!] No images found on page", page_index)
for image_index, img in enumerate(page.getImageList(), start=1):
# get the XREF of the image
xref = img[0]
# extract the image bytes
base_image = pdf_file.extractImage(xref)
image_bytes = base_image["image"]
# get the image extension
image_ext = base_image["ext"]
输出: