通过Python的fitz库提取pdf中的图片
要使用Python的fitz库提取PDF中的图片,首先需要安装fitz库,这是PyMuPDF的一个模块,可以处理PDF文件。以下是提取PDF中图片的示例代码:
import fitz # PyMuPDF
def extract_images_from_pdf(pdf_path):
# 打开PDF文件
document = fitz.open(pdf_path)
images = []
for page_num in range(len(document)):
page = document[page_num]
# 检查页面中的图片
for img_index in page.get_images():
img_info = page.get_image_info(img_index)
# 获取图片的数据和尺寸
img_data = page.get_image_data(img_info['id'])
img_bytes = img_data['image']
img_name = f"page_{page_num+1}_{img_info['id']}.png"
# 可以选择保存图片到文件
# fitz.Image.from_pixmap(img_data['pixmap']).save(img_name)
images.append((img_name, img_bytes))
document.close()
return images
# 使用示例
pdf_path = 'example.pdf'
images = extract_images_from_pdf(pdf_path)
for img_name, img_bytes in images:
print(f"Image Name: {img_name}")
# 可以选择保存图片到文件
# with open(img_name, 'wb') as f:
# f.write(img_bytes)
确保在运行此代码之前已经安装了PyMuPDF库,可以使用pip安装:
pip install pymupdf
这段代码会遍历PDF文档中的每一页,检测每个页面上的图片,并将图片信息以元组的形式返回,包含图片的名称和字节数据。如果需要,可以通过注释掉的代码将图片保存到文件系统。
评论已关闭