Python 实现将大图切片成小图,将小图组合成大图的例子

  • Post category:Python

针对Python实现将大图切片成小图、将小图组合成大图的案例,可以分为两个部分:分割图片和合并图片。下面是分别的详细攻略:

分割图片

1. 准备原始图片

首先准备一张较大的图片,比如一张分辨率为5000×5000的图片。

2. 安装Pillow库

将要使用到Pillow库进行图片处理,需要先安装该库。可以使用pip命令轻松安装:

pip install Pillow

3. 编写代码

Python代码如下:

from PIL import Image

# 打开图片
im = Image.open("test.jpg")
width, height = im.size

# 定义单个小图的大小
size = 256

# 计算要切割出的小图的行数和列数
rows = height // size
cols = width // size

# 遍历每一个小图并保存
for r in range(rows):
    y = r * size
    for c in range(cols):
        x = c * size
        crop = im.crop((x, y, x + size, y + size))
        crop.save(f"crop_{r}_{c}.jpg")

该代码将图片按照256×256的大小切割成若干小图,保存在当前工作目录下。其中,使用了PIL库中的crop()方法进行切割操作。

4. 执行代码并查看结果

将上面代码保存为split.py文件,然后在命令行中执行:

python split.py

会在当前工作目录下生成若干张名为crop_x_y.jpg的小图。

合并图片

1. 准备小图

将上一步切割出的若干个小图,放在同一目录下。

2. 编写代码

Python代码如下:

from PIL import Image

# 定义分割后小图的大小
size = 256

# 定义合并后图像的大小
rows = cols = 20 # 行列数都为20
new_im = Image.new('RGB', (cols*size, rows*size))

# 遍历所有小图并粘贴到新图中
for r in range(rows):
    for c in range(cols):
        im = Image.open(f"crop_{r}_{c}.jpg")
        new_im.paste(im, (c*size, r*size))

# 将新图保存
new_im.save("combined.jpg")

该代码将上一步切割出的小图,按照一定行列顺序合并成一张大图,并保存在同一目录下。其中,使用PIL库中的paste()方法进行粘贴操作。

3. 执行代码并查看结果

将上面代码保存为combine.py文件,然后在命令行中执行:

python combine.py

会在当前工作目录下生成一张名为combined.jpg的大图。

以上就是Python实现将大图切片成小图,再将小图合并成大图的完整攻略了。