python批量读取图片文字保留格式_Python 提取Word里的所有图片并批量转化格式
时间: 2024-02-06 22:13:06 浏览: 129
要实现Python批量读取图片文字并保留格式,可以使用OCR技术对图片进行文字识别,然后将识别出的文本保存为相应格式的文件。
以下是一个示例代码,实现了批量读取指定文件夹下的所有图片并进行OCR文字识别,最后将识别结果保存为txt文件:
```python
import pytesseract
from PIL import Image
import os
# 设置tesseract的安装路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
# 指定待识别图片所在的文件夹路径
img_folder = r'C:\Users\username\Documents\images'
# 定义一个函数,用于对单张图片进行OCR文字识别,并将识别结果保存到txt文件中
def recognize_text(image_path):
# 打开图片
image = Image.open(image_path)
# 进行OCR识别
text = pytesseract.image_to_string(image, lang='eng')
# 保存识别结果到txt文件中
with open('result.txt', 'a') as f:
f.write(text)
f.write('\n\n')
# 遍历指定文件夹下的所有图片,进行OCR文字识别
for root, dirs, files in os.walk(img_folder):
for file in files:
if file.endswith('.jpg') or file.endswith('.png'):
image_path = os.path.join(root, file)
recognize_text(image_path)
```
如果要提取Word里的所有图片并批量转化格式,可以使用Python的docx库来实现。以下是一个示例代码,实现了提取Word文档中的所有图片并将其转化为jpg格式的图片:
```python
from docx import Document
# 打开Word文档
doc = Document('example.docx')
# 定义一个函数,用于将Word文档中的图片保存为jpg格式的图片
def save_image(image, filename):
with open(filename, 'wb') as f:
f.write(image)
# 遍历文档中的所有图片,并将其转化为jpg格式的图片
for i, image in enumerate(doc.inline_shapes):
if 'image' in image._element.xml:
# 获取图片数据
image_data = image._inline.graphic.graphicData.pic.blipFill.blip.getparent().getnext().getchildren()[0].getchildren()[0]
# 将图片数据保存为jpg格式的图片
save_image(image_data, f'image{i}.jpg')
```
需要注意的是,由于Word文档中的图片可能采用了不同的格式,因此转化为jpg格式的图片可能会失去一些细节。如果需要保留完整的图片格式,可以考虑将图片保存为原格式,或者使用第三方库进行格式转化。
阅读全文