批量处理文件夹下所有文件夹的所有图片,进行图片尺寸更改,并按照原始文件夹的排布方式进行排布,文件名按照原始文件名进行命名
时间: 2024-03-22 17:40:10 浏览: 75
您可以使用Python中的Pillow库来批量处理文件夹下的所有图片,并且可以按照原始文件夹的排布方式进行排布,文件名也可以按照原始文件名进行命名。以下是一个示例代码:
```python
import os
from PIL import Image
# 定义图片尺寸
new_width = 800
new_height = 600
# 定义原始文件夹路径和目标文件夹路径
src_dir = '原始文件夹路径'
dst_dir = '目标文件夹路径'
# 遍历原始文件夹下的所有子文件夹和文件
for root, dirs, files in os.walk(src_dir):
# 获取相对路径
rel_path = os.path.relpath(root, src_dir)
# 创建目标文件夹
dst_path = os.path.join(dst_dir, rel_path)
os.makedirs(dst_path, exist_ok=True)
# 遍历文件
for file in files:
# 判断文件是否为图片文件
if file.endswith('.jpg') or file.endswith('.jpeg') or file.endswith('.png') or file.endswith('.gif'):
# 打开图片文件
with Image.open(os.path.join(root, file)) as img:
# 获取原始尺寸
width, height = img.size
# 计算缩放比例
scale = min(new_width/width, new_height/height)
# 计算新尺寸
new_size = (int(width*scale), int(height*scale))
# 缩放图片
img = img.resize(new_size, Image.ANTIALIAS)
# 保存图片
dst_file = os.path.join(dst_path, file)
img.save(dst_file)
print('已处理:', dst_file)
```
在上述代码中,`Pillow`库用于处理图片的缩放和保存,`os`库用于遍历文件夹和创建目标文件夹。您可以根据自己的需求修改代码中的图片尺寸、原始文件夹路径和目标文件夹路径等参数。
阅读全文