网站制作 深圳,变性人做网站,电影网站模板,网页设计要学些什么使用word中提取的方式图片会丢失清晰度#xff0c;使用python写一个脚本#xff0c;程序运行将弹出对话框选择一个word文件#xff0c;然后在弹出一个对话框选择一个文件夹保存word中的文件。将该word中的所有图片都保存成png格式#xff0c;并命名成image_i的样式。
程序… 使用word中提取的方式图片会丢失清晰度使用python写一个脚本程序运行将弹出对话框选择一个word文件然后在弹出一个对话框选择一个文件夹保存word中的文件。将该word中的所有图片都保存成png格式并命名成image_i的样式。
程序运行步骤如下图所示
代码
其中save_images_from_word函数介绍如下
docx_file一个字符串表示要处理的Word文档的路径。output_folder一个字符串表示要将图片保存到的文件夹路径。
使用python-docx库打开给定的Word文档并将其内容存储在doc对象中。for i, rel in enumerate(doc.part.rels.values()):遍历文档中的所有关系。每一个关系rel都代表文档中的一个链接或嵌入的对象。通过enumerate函数我们可以同时获得关系的索引i和关系对象本身。if image in rel.reltype: 检查当前的关系是否是一个图片。rel.reltype是一个字符串表示关系的类型。如果这个字符串中包含image则表示这是一个图片关系。image_bytes rel.target_part.blob 从图片关系中获取图片的原始字节数据。这里rel.target_part.blob表示图片的原始二进制数据。with open(os.path.join(output_folder, fimage_{i}.png), wb) as f: 使用os.path.join函数构造保存图片的完整路径。这里使用了格式化字符串f-string将关系索引转换为image_{i}.png这样的文件名。例如如果索引是0则文件名为image_0.png。f.write(image_bytes) 将图片的原始字节数据写入到刚刚打开的文件中。这样图片就被保存为PNG格式的文件了。
##########################################
#选择一个word文件在选择一个路径
#程序将所有word中的图片保存成png格式
#并且命名为image_ifrom tkinter import Tk, filedialog
from docx import Document
import os
import io
#from docx.shapes.picture import Picture
from PIL import Image def save_images_from_word(docx_file, output_folder):doc Document(docx_file)for i, rel in enumerate(doc.part.rels.values()):if image in rel.reltype:image_bytes rel.target_part.blobwith open(os.path.join(output_folder, fimage_{i}.png), wb) as f:f.write(image_bytes)
def select_file(): root Tk() root.withdraw() file_path filedialog.askopenfilename(filetypes[(Word files, *.docx)]) return file_path def select_output_folder(): root Tk() root.withdraw() output_folder filedialog.askdirectory() return output_folder # 选择Word文件
file_path select_file()
if file_path: # 选择输出文件夹 output_folder select_output_folder() if output_folder: # 保存图片到输出文件夹 save_images_from_word(file_path, output_folder)