Python将1张图片分割成9张

作者:JC2024.01.08 16:13浏览量:13

简介:在Python中,我们可以使用PIL(Python Imaging Library)库来分割一张图片。以下是一个简单的例子,将一张图片分割成9张等大的图片。

首先,确保已经安装了PIL库。如果没有,可以通过pip进行安装:pip install pillow
然后,可以使用以下代码将图片分割成9个等大的部分:

  1. from PIL import Image
  2. def split_image(image_path, output_folder):
  3. original_image = Image.open(image_path)
  4. width, height = original_image.size
  5. # 计算每个小图的尺寸
  6. tile_width = width // 3
  7. tile_height = height // 3
  8. # 遍历行和列,分割图片并保存
  9. for i in range(3):
  10. for j in range(3):
  11. box = (j * tile_width, i * tile_height, (j + 1) * tile_width, (i + 1) * tile_height)
  12. region = original_image.crop(box)
  13. region.save(f'{output_folder}/tile_{i}_{j}.jpg')

在上面的代码中,我们首先打开图片,然后计算每个小图的尺寸。然后,我们遍历行和列,使用crop方法来分割图片,并将每个部分保存为新的图片文件。
请注意,这个函数会将原始图片的尺寸均匀地分割成9个部分,如果原始图片的尺寸不能被3整除,那么最右侧和最下侧的区域可能会比其他部分小。如果你希望保持每个部分的大小一致,你可能需要对图片进行一些调整,例如裁剪或填充。
要使用这个函数,只需要提供一个原始图片的路径和一个输出文件夹的路径。例如:

  1. split_image('my_image.jpg', 'output_folder')

这将把’myimage.jpg’分割成9个部分,并将它们保存到’output_folder’文件夹中。每个部分将以’tile{i}_{j}.jpg’的格式命名,其中{i}和{j}表示该部分在网格中的行和列位置。