获取文件夹下所有文件夹的所有图片,更改图片的尺寸后生成文件夹,按照原始文件夹进行排布,文件名使用原始文件名
时间: 2023-08-10 16:03:54 浏览: 77
以下是 Python 代码示例,使用了 Pillow 库来调整图片尺寸:
```python
from PIL import Image
import os
# 定义函数,用于调整图片尺寸
def resize_image(image_path, output_path, new_size):
with Image.open(image_path) as image:
resized_image = image.resize(new_size)
resized_image.save(output_path)
# 定义函数,用于获取指定文件夹下所有图片
def get_all_images(folder_path):
images = []
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith('.jpg') or file.endswith('.png'):
images.append(os.path.join(root, file))
return images
# 定义函数,用于生成新文件夹并存储调整后的图片
def generate_resized_images(source_folder, target_folder, new_size):
# 获取所有图片
images = get_all_images(source_folder)
# 按照原始文件夹进行排布
for image_path in images:
relative_path = os.path.relpath(image_path, source_folder)
output_folder = os.path.join(target_folder, os.path.dirname(relative_path))
os.makedirs(output_folder, exist_ok=True)
output_path = os.path.join(output_folder, os.path.basename(image_path))
# 调整图片尺寸并存储
resize_image(image_path, output_path, new_size)
# 调用函数,生成新文件夹并存储调整后的图片
source_folder = '/path/to/source/folder'
target_folder = '/path/to/target/folder'
new_size = (640, 640) # 调整后的图片尺寸为 640x640
generate_resized_images(source_folder, target_folder, new_size)
```
在使用时,需要将代码中的 `source_folder` 替换为要处理的原始文件夹的路径,`target_folder` 替换为生成的新文件夹的路径,`new_size` 替换为要调整的图片尺寸。代码会自动获取原始文件夹下所有图片,并按照原始文件夹进行排布,生成新文件夹并存储调整后的图片。新文件夹的文件名使用原始文件名。
阅读全文