如何通过 Python 中的 fitz 库提取 pdf 中的图片?

2023-11-21 阅读 66

要使用Python中的fitz库提取PDF中的图片,可以按照以下步骤进行操作:

  1. 首先,确保已经安装了fitz库。可以使用以下命令进行安装:

    pip install PyMuPDF
    
  2. 导入fitz库:

    import fitz
    
  3. 打开PDF文件:

    doc = fitz.open('example.pdf')
    

    其中,'example.pdf'是你要提取图片的PDF文件路径。

  4. 遍历PDF的页面:

    for i in range(len(doc)):
        page = doc[i]
        images = page.get_images()
        for img in images:
            xref = img[0]
            base_image = doc.extract_image(xref)
            image_data = base_image["image"]
            image_format = base_image["ext"]
            with open(f'image_{i}_{xref}.{image_format}', 'wb') as f:
                f.write(image_data)
    

    在这个示例中,我们遍历了每个页面,并使用get_images()方法获取每个页面中的图片信息。然后,我们使用extract_image()方法提取每个图片的原始数据,并将其保存到文件中。

    注意,extract_image()方法返回一个字典,其中包含图像数据和扩展名。我们可以使用这些信息来创建一个唯一的文件名,并将图像数据写入文件。

    上述代码中,image_{i}_{xref}.{image_format}是保存图像的文件名,其中{i}是页面索引,{xref}是图像的引用编号,{image_format}是图像的文件扩展名。

  5. 关闭PDF文件:

    doc.close()
    

完成以上步骤后,你将从PDF文件中提取出所有的图片,并将其保存到指定的路径中。

更新于 2023年11月21日