详解如何在Python中用Pillow将两个图像的连接

  • Post category:Python

在Python中,可以使用Pillow库来实现图像处理的功能,包括图像的合并与连接。下面是将两个图像连接的步骤:

1. 引入Pillow库

要使用Pillow库,需要先在Python代码中引入这个库。可以使用以下语句来引入Pillow库:

from PIL import Image

2. 打开图片

使用Pillow库打开图片:

img1 = Image.open("image1.jpg")
img2 = Image.open("image2.jpg")

可以使用Image.open()函数来打开要连接的两个图像。这里的两个图像分别是image1.jpgimage2.jpg

3. 获取图片的大小

在连接两个图像之前,需要确保两个图像是相同大小的。获取图片的大小,使用size属性:

width1, height1 = img1.size
width2, height2 = img2.size

使用size属性可以获取图片的宽度和高度,将其存储在widthheight变量中。为了方便起见,可以定义一个get_size()函数,以获取图像的大小。

def get_size(img_path):
    img = Image.open(img_path)
    width, height = img.size
    return width, height

4. 创建新图像

在Python中,可以使用Image.new()函数来创建新的图像。

new_img = Image.new("RGB", (width1 + width2, max(height1, height2)))

使用Image.new()函数可以创建一个新的图像对象,参数是图像的类型和大小。这里创建的是RGB类型的图像,大小是两个图像横向拼接,纵向以最大高度为准的大小。

5. 将原始图像粘贴到新图像中

使用Image.paste()函数,将两个原始图像粘贴到新图像中。

new_img.paste(img1, (0, 0))
new_img.paste(img2, (width1, 0))

使用Image.paste()函数可以将源图像粘贴到目标图像的指定位置。这里第一个参数是源图像,第二个参数是位置坐标,表示在目标图像中的左上角位置。第一个原始图像从左上角开始,第二个原始图像从第一个图像右侧开始。

6. 保存新图像

将拼接好的新图像保存到本地,可以使用Image.save()函数:

new_img.save("new_image.jpg")

使用Image.save()函数可以将图像对象保存到本地文件中。这里将新的合并图像保存为new_image.jpg

以下是完整的Python代码示例:

from PIL import Image

def get_size(img_path):
    img = Image.open(img_path)
    width, height = img.size
    return width, height

img1 = Image.open("image1.jpg")
img2 = Image.open("image2.jpg")

width1, height1 = get_size("image1.jpg")
width2, height2 = get_size("image2.jpg")

new_img = Image.new("RGB", (width1 + width2, max(height1, height2)))
new_img.paste(img1, (0, 0))
new_img.paste(img2, (width1, 0))
new_img.save("new_image.jpg")

以上代码仅仅连接了两张图像,如果需要连接多张图像,只需要按照类似的方式实现即可。