问题:批量将图片按照从左到右的顺序将图片分割成四个子图,并且将子图按顺序保存。
import os
from PIL import Imagedef split_image(image_path, output_dir):# 创建输出目录(如果不存在)if not os.path.exists(output_dir):os.makedirs(output_dir)# 打开图像with Image.open(image_path) as img:# 获取图像的宽度和高度width, height = img.size# 计算分割后每张图片的宽度split_width = width // 4# 遍历四个分割区域,并保存图像for i in range(4):left = i * split_widthright = (i + 1) * split_widthtop = 0bottom = height# 裁剪图像cropped_img = img.crop((left, top, right, bottom))# 生成输出文件名output_file_name = os.path.join(output_dir, f"{os.path.splitext(os.path.basename(image_path))[0]}_part_{i+1}.png")# 保存裁剪后的图像cropped_img.save(output_file_name)def batch_split_images(input_dir, output_dir):# 遍历输入目录中的所有文件for file_name in os.listdir(input_dir):if file_name.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):input_file_path = os.path.join(input_dir, file_name)split_image(input_file_path, output_dir)# 示例使用
input_directory = 'path/to/your/input/directory' # 替换为你的输入目录路径
output_directory = 'path/to/your/output/directory' # 替换为你的输出目录路径batch_split_images(input_directory, output_directory)
说明:
- split_image函数:这个函数负责读取一张图片,将其按从左到右的形式分割成四张图片,并按顺序保存到指定的输出目录中。
- batch_split_images函数:这个函数遍历输入目录中的所有文件,对于符合条件的图片文件(如
.png
,.jpg
,.jpeg
,.bmp
,.gif
),调用split_image
函数进行分割。 - 输入和输出目录:你需要将
input_directory
和output_directory
替换为你实际的目录路径。
确保你已经安装了Pillow库,可以使用以下命令进行安装:
pip install Pillow
运行这段代码后,输入目录中的所有符合条件的图片都会被分割成四张图片,并按顺序保存到输出目录中。