python - 压缩word图片大小
主要分为3个步骤,解压docx文件,压缩图片,压缩文件,需要用到zipfile和pillow
1. 解压docx文件
import zipfile
zip_file = zipfile.ZipFile("./test.docx")
zip_file.extractall("./test")
zip_file.close()
解压后可以在解压的目录里面的word/media找到图片
2. 图片大小压缩
import os
from PIL import Image
def compress_image(file_path, target_size=64, step=10, quality=80):
o_size = os.path.getsize(file_path) / 1024
while o_size >= target_size:
im = Image.open(file_path)
im.save(file_path, quality=quality) # quality参数为保存图像的质量,值的范围从1(最差)到95(最佳)
if quality - step <= 0:
break
quality -= step
o_size = os.path.getsize(file_path) / 1024
for file_name in os.listdir('./test/word/media'):
compress_image(f'./test/word/media/{file_name}')
3. 打包文件
zip_file = zipfile.ZipFile('test1.docx', 'w')
for path, dirs, filenames in os.walk('./test'):
fpath = path.replace('./test', '')
for filename in filenames:
zip_file.write(os.path.join(path, filename), os.path.join(fpath, filename))
zip_file.close()
附上效果图
压缩前图片
压缩后图片
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)