详解用Python对图片进行循环剪裁

  • Post category:Python

首先我们需要明确的是,Python对于图片的处理需要依赖第三方库,最常用的库是Pillow。因此,在进行循环剪裁操作之前,需要先安装Pillow库。可以使用以下命令进行安装:

pip install Pillow

接下来,我们就可以开始进行循环剪裁操作了。下面是一个完整的过程:

步骤一:导入库和读取图片

from PIL import Image

# 读取图片
image = Image.open('原始图片路径')

步骤二:循环剪裁图片

# 定义剪裁的宽度和高度
width, height = image.size
crop_width, crop_height = 200, 200

# 循环剪裁图片
for i in range(0, width-crop_width, crop_width):
    for j in range(0, height-crop_height, crop_height):
        # 剪裁图片
        box = (i, j, i+crop_width, j+crop_height)
        crop_image = image.crop(box)

        # 保存图片
        crop_image.save(f'{i}_{j}.jpg')

以上代码实现的是将图片按照200×200的矩形分块剪裁并保存,剪裁后的图片路径为i_j.jpg,其中i,j分别代表图片左上角的横纵坐标。

接下来,我将通过两个示例来更详细的演示循环剪裁的过程。

示例一:将一张图片等分剪裁并保存

from PIL import Image

# 读取图片
image = Image.open('example.jpg')

# 定义剪裁的列数和行数
cols, rows = 4, 3

# 循环剪裁图片
width, height = image.size # 获取图片宽度和高度
crop_width, crop_height = width//cols, height//rows # 计算剪裁后每块的宽度和高度

for i in range(cols):
    for j in range(rows):
        # 剪裁图片
        box = (i*crop_width, j*crop_height, (i+1)*crop_width, (j+1)*crop_height)
        crop_image = image.crop(box)

        # 保存图片
        crop_image.save(f'example_{i}_{j}.jpg')

在上述代码中,我们将一张大小为1200×800的图片分成了12块,每块大小为300×267,保存后的图片名称为example_i_j.jpg,其中i,j均从0开始递增。

示例二:将一张图片分成不等大小的块并保存

from PIL import Image

# 读取图片
image = Image.open('example.jpg')

# 定义剪裁的位置和大小
crop_infos = [(0, 0, 400, 400), (0, 400, 600, 800), (400, 0, 800, 400), (600, 400, 800, 800)]

# 循环剪裁图片
for i, crop_info in enumerate(crop_infos):
    # 剪裁图片
    box = crop_info
    crop_image = image.crop(box)

    # 保存图片
    crop_image.save(f'example_{i}.jpg')

在这个示例中,我们手动定义了四块不等大小的剪裁区域,并将原始图片进行剪裁保存。剪裁后的图片名称为example_i.jpg,其中i从0开始递增。

这就是使用Python对图片进行循环剪裁的完整攻略,希望对您有所帮助!