【python图像处理】批量用PIL读取图像并将其从中间裁剪为两张图像并保存

python随便写的一个批量裁剪图像的代码,用于将扫描的书籍文件从中间裁剪为两张图像也就是两页

import os
from PIL import Image

def imghalf(folder_path):
    # 遍历文件夹中的所有文件
    for filename in os.listdir(folder_path):
        if filename.endswith('.jpg') or filename.endswith('.jpeg'):  # 检查文件是否为JPG或JPEG图片
            # 创建图片的完整路径
            image_path = os.path.join(folder_path, filename)

            # 打开图片
            img = Image.open(image_path)

            # 获取图片的宽度和高度
            width, height = img.size

            # 计算裁剪点的位置
            middle_point = width // 2

            # 裁剪图片
            left_half = img.crop((0, 0, middle_point, height))
            right_half = img.crop((middle_point, 0, width, height))

            # 创建保存裁剪后图片的文件路径
            left_half_path = os.path.join(folder_path, 'left_' + filename)
            right_half_path = os.path.join(folder_path, 'right_' + filename)

            # 保存裁剪后的图片
            left_half.save(left_half_path)
            right_half.save(right_half_path)

def main():
    folder_path = 'path_to_your_folder'  # 将'path_to_your_folder'替换为您的文件夹路径
    imghalf(folder_path)

if __name__ == '__main__':
    main()
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你好!以下是使用Python读取文件夹下的所有图像并进行裁剪的示例代码: ```python import os from PIL import Image # 设置文件夹路径 folder_path = "/path/to/folder" # 获取文件夹下所有文件的列表 file_list = os.listdir(folder_path) # 遍历文件列表 for file_name in file_list: # 判断文件是否为图像文件 if file_name.endswith(".jpg") or file_name.endswith(".jpeg") or file_name.endswith(".png"): # 拼接文件的完整路径 file_path = os.path.join(folder_path, file_name) # 打开图像文件 img = Image.open(file_path) # 裁剪图像 cropped_img = img.crop((0, 0, 100, 100)) # 这里使用了一个固定的裁剪区域,你可以根据需要进行修改 # 保存裁剪后的图像 cropped_img.save(file_path) ``` 上述代码中,我们首先通过`os.listdir()`方法获取指定文件夹下的所有文件列表,然后遍历列表,使用`PIL`库中的`Image.open()`方法打开每一个图像文件,并使用`crop()`方法对图像进行裁剪,最后再使用`save()`方法将裁剪后的图像保存回原文件。你可以根据自己的需求修改裁剪区域等参数。 ### 回答2: 要使用Python读取文件夹下的所有图像并进行裁剪,可以使用以下步骤: 1. 导入必要的库 - 首先,需要导入Python的os库和Pillow库(也称为PIL库),用于处理图像。 2. 获取文件夹中的所有图像文件 - 使用os库中的函数,如os.listdir(),可以获取文件夹中的所有文件,并保存到一个列表中。 3. 遍历图像文件列表 - 使用一个循环来遍历所有的图像文件。 4. 打开并裁剪图像 - 使用Pillow库中的函数,如Image.open()来打开图像文件,并使用Image.crop()函数来裁剪图像。根据需求,你可以指定要裁剪的位置和大小,也可以使用预定义的裁剪区域。 5. 保存裁剪后的图像 - 使用Image.save()函数将裁剪后的图像保存到指定的位置。可以使用原始文件名加上一个后缀或添加一个新的文件夹来保存。 以下是一个简单的示例代码: ```python import os from PIL import Image folder_path = "图片文件夹路径" output_folder = "裁剪图像保存路径" # 获取文件夹中的所有图像文件 image_files = [f for f in os.listdir(folder_path) if f.endswith(('.jpg', '.jpeg', '.png', '.gif'))] # 遍历图像文件列表 for image_file in image_files: # 打开并裁剪图像 image_path = os.path.join(folder_path, image_file) image = Image.open(image_path) cropped_image = image.crop((x, y, width, height)) # 根据需求进行裁剪 # 保存裁剪后的图像 output_path = os.path.join(output_folder, image_file) cropped_image.save(output_path) print("裁剪完成!") ``` 请注意,上述示例代码中的"图片文件夹路径"需要替换为实际的文件夹路径,而"裁剪图像保存路径"也需要替换为你想保存裁剪图像的文件夹路径。而裁剪区域(x、y、width、height)也需要根据具体的需求进行设定。 ### 回答3: Python可以使用`os`和`PIL`库来读取文件夹下的所有图像并进行裁剪。下面是一个简单的示例代码: ```python import os from PIL import Image def crop_images_in_folder(folder_path, new_folder_path, left, upper, right, lower): # 遍历文件夹中的所有文件 for filename in os.listdir(folder_path): # 检查文件是否为图像文件 if filename.endswith(".jpg") or filename.endswith(".png"): # 拼接文件路径 file_path = os.path.join(folder_path, filename) # 打开并裁剪图像 image = Image.open(file_path) cropped_image = image.crop((left, upper, right, lower)) # 新的文件路径 new_file_path = os.path.join(new_folder_path, filename) # 保存裁剪后的图像 cropped_image.save(new_file_path) folder_path = "/path/to/folder" # 文件夹路径 new_folder_path = "/path/to/new_folder" # 新文件夹路径 left = 100 # 左上角x坐标 upper = 100 # 左上角y坐标 right = 300 # 右下角x坐标 lower = 300 # 右下角y坐标 crop_images_in_folder(folder_path, new_folder_path, left, upper, right, lower) ``` 在上述代码中,`crop_images_in_folder`函数接受文件夹路径、新文件夹路径以及裁剪的坐标作为参数。它使用`os.listdir`函数遍历文件夹中的所有文件,并检查文件是否为图像文件。然后,打开图像并使用`crop`函数裁剪指定的区域。最后,将裁剪后的图像保存到新的文件路径下。 你需要将`folder_path`和`new_folder_path`的值替换为实际的文件夹路径,并根据需要调整`left`、`upper`、`right`和`lower`的值来定义裁剪区域的坐标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值