📜  如何在Python中从 PDF 中提取图像?

📅  最后修改于: 2022-05-13 01:55:40.618000             🧑  作者: Mango

如何在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"]


输出: