用python写一段代码,要求如下:遍历一个文件夹下的所有文件,每个文件有若干图片,每个文件下的图片分别镜像翻转,向左旋转90度,向右旋转90度,获得的图片命名不变但保存在三个不同的文件夹下
时间: 2024-10-11 19:06:16 浏览: 7
当然,我可以提供一个Python脚本示例,使用`os`, `PIL`(Python Imaging Library,已合并到`Pillow`库)来完成这个任务。首先,你需要安装`Pillow`库,如果你还没有安装,可以使用`pip install pillow`。
下面是一个基本的代码结构:
```python
import os
from PIL import Image
# 定义源文件夹、目标文件夹和旋转方向对应的文件夹
src_dir = 'source_folder' # 你的源文件夹路径
mirror_dir = 'mirrored_folder'
left_rotate_dir = 'left_rotated_folder'
right_rotate_dir = 'right_rotated_folder'
for foldername in [mirror_dir, left_rotate_dir, right_rotate_dir]:
if not os.path.exists(foldername):
os.makedirs(foldername)
def process_image(file_path):
img = Image.open(file_path)
# 镜像翻转
mirror_img_path = os.path.join(mirror_dir, os.path.basename(file_path))
img_mirror = img.transpose(Image.FLIP_LEFT_RIGHT) # 左右翻转
img_mirror.save(mirror_img_path)
# 顺时针旋转90度
rotate_left_img_path = os.path.join(left_rotate_dir, os.path.basename(file_path))
img_left = img.transpose(Image.ROTATE_90) # 顺时针旋转
img_left.save(rotate_left_img_path)
# 逆时针旋转90度
rotate_right_img_path = os.path.join(right_rotate_dir, os.path.basename(file_path))
img_right = img.transpose(Image.ROTATE_270) # 逆时针旋转
img_right.save(rotate_right_img_path)
# 使用os.walk遍历源文件夹内的所有文件
for root, dirs, files in os.walk(src_dir):
for file in files:
if file.endswith(('.jpg', '.jpeg', '.png', '.bmp')): # 只处理常见的图片格式
src_file_path = os.path.join(root, file)
process_image(src_file_path)
阅读全文