Python 批量压缩目录树下图片大小
时间: 2023-09-27 09:10:19 浏览: 85
可以使用 Python 中的 Pillow 库来批量处理图片大小,并使用 zipfile 库来压缩目录树。
首先需要安装 Pillow 和 zipfile 库:
```
pip install Pillow
```
```
pip install zipfile
```
接下来,我们可以使用以下代码来批量处理图片大小和压缩目录树:
```python
from PIL import Image
import os
import zipfile
def resize_and_compress(dir_path, target_size, compression_level):
# 遍历目录树
for root, dirs, files in os.walk(dir_path):
# 遍历文件
for file in files:
# 判断是否为图片文件
if file.endswith('.jpg') or file.endswith('.png'):
# 打开图片文件
image_path = os.path.join(root, file)
with Image.open(image_path) as image:
# 调整大小
ratio = target_size / max(image.size)
new_size = tuple([int(x*ratio) for x in image.size])
resized_image = image.resize(new_size)
# 保存调整后的图片
resized_image.save(image_path)
# 压缩文件
zip_path = os.path.join(root, f'{file}.zip')
with zipfile.ZipFile(zip_path, 'w', compression=zipfile.ZIP_DEFLATED, compresslevel=compression_level) as zip_file:
zip_file.write(image_path, arcname=file)
# 示例:将目录树下的图片调整为最大边长为 800 像素,并压缩到压缩等级为 2 的 ZIP 文件中
resize_and_compress('/path/to/directory', 800, 2)
```
这段代码会遍历目录树下的所有文件,找到图片文件进行大小调整和压缩。调整后的图片会覆盖原文件,压缩后的文件名为原文件名加上 `.zip` 后缀。可以根据需要修改目标大小和压缩等级。
阅读全文