重复对自己的文件夹图片进行剪切到一定的尺寸,要保持每次剪切的图片与上一次剪切的不一样代码
时间: 2024-03-28 13:42:12 浏览: 16
好的,您想让我提供一个重复对自己的文件夹图片进行剪切到一定尺寸的代码,并保持每次剪切的图片与上一次剪切的不同,是吗?
以下是一个Python代码示例,它可以读取指定文件夹中的图片,将它们剪切到指定的尺寸,并且使用随机数来保证每次剪切的图片与上一次剪切的不同。
```python
import os
import random
from PIL import Image
# 设定目标尺寸
target_size = (224, 224)
# 设定源文件夹路径和目标文件夹路径
src_folder = "/path/to/source/folder"
dst_folder = "/path/to/destination/folder"
# 获取源文件夹中所有图片的路径
file_list = [os.path.join(src_folder, f) for f in os.listdir(src_folder) if f.endswith(".jpg") or f.endswith(".png")]
# 在目标文件夹中创建一个新的子文件夹,用于存储剪切后的图片
new_folder_name = "resized_" + str(target_size[0]) + "_" + str(target_size[1]) + "_" + str(random.randint(0, 10000))
new_folder_path = os.path.join(dst_folder, new_folder_name)
os.makedirs(new_folder_path)
# 逐个剪切每张图片
for file_path in file_list:
# 打开图片
img = Image.open(file_path)
# 剪切图片到目标尺寸
img = img.resize(target_size)
# 生成目标文件路径,使用随机数避免重名
new_file_name = os.path.splitext(os.path.basename(file_path))[0] + "_" + str(random.randint(0, 10000)) + ".jpg"
new_file_path = os.path.join(new_folder_path, new_file_name)
# 保存剪切后的图片
img.save(new_file_path)
```
此代码将读取一个名为 `src_folder` 的文件夹中的所有 `.jpg` 和 `.png` 文件,将它们剪切到指定的尺寸,并将剪切后的图片保存到一个名为 `resized_224_224_XXXX` 的新文件夹中,其中 `XXXX` 是一个随机数。这将确保每次运行代码时,生成的文件夹名称都不同,从而保证每次剪切的图片与上一次剪切的不同。