如何使用 Python 中的 Pillow 合并图像?


Python 是一种流行的编程语言,全球开发者都使用它来构建各种应用程序。Python 的一大优势是拥有多个强大的库,可以简化复杂的任务。Pillow 就是这样一个库,它用于图像处理任务,例如调整大小、裁剪和处理图像。

在本教程中,我们将探讨如何使用 Pillow 在 Python 中水平和垂直合并图像。图像合并是指将两张或多张图像组合成一张图像的过程。通过合并图像,我们可以创建令人惊艳的图像拼贴画、将多张图像组合成一张图像或创建图像序列。在本文的后续部分,我们将深入探讨使用 Pillow 加载图像、调整图像大小以及最终水平和垂直合并图像的过程。

如何使用 Python 中的 Pillow 合并图像?

在图像处理中,合并是指将两张或多张图像组合成一张图像。图像合并是一项强大的技术,允许您创建令人惊艳的图像拼贴画、将多张图像组合成一张图像或创建图像序列。在本教程中,我们将学习如何使用 Python 中的 Pillow 库合并图像。

在开始之前,我们需要安装 Pillow 库。在本教程中,我们假设您的系统上已安装 Python。

要安装 Pillow 库,我们可以使用 pip,它是 Python 的包安装程序。打开您的终端或命令提示符并输入以下命令:

pip install Pillow

此命令将下载并安装 Pillow 库及其依赖项。现在我们可以继续本文的下一部分,我们将学习如何使用 Pillow 加载图像。

使用 Pillow 合并图像

现在我们已经安装了 Pillow,让我们继续使用它来合并图像。

合并是指将多张图像组合成一张图像。我们可以水平或垂直合并图像。

为了使用 Pillow 合并图像,我们使用 Image 模块的 concatenate() 方法。concatenate() 方法有两个参数:images 和 direction。images 参数是我们想要合并的图像列表,direction 参数指定我们是想水平合并还是垂直合并图像。

水平合并

水平合并是将两张或多张图像水平组合成一张图像的过程。这里我们使用以下两张图像作为“image-1”和“image-2”

Image-1

Image-2

示例

考虑以下使用 Pillow 执行水平合并的代码片段:

from PIL import Image

# Load the images
image1 = Image.open("image-1.jpg")
image2 = Image.open("image-2.jpg")

# Get the dimensions of the images
width1, height1 = image1.size
width2, height2 = image2.size

# Create a new image with the combined width and the height of the tallest image
new_width = width1 + width2
new_height = max(height1, height2)
new_image = Image.new("RGB", (new_width, new_height))

# Paste the two images onto the new image
new_image.paste(image1, (0, 0))
new_image.paste(image2, (width1, 0))

# Save the new image
new_image.save("concatenated_image_horizontal.jpg")

在此代码片段中,我们首先加载我们想要合并的两张图像。然后,我们使用 size 属性获取图像的尺寸。我们使用 new() 方法创建一个新的图像对象,其宽度为两张图像宽度的总和,高度为最高的图像的高度。

然后,我们将这两张图像粘贴到新图像上,第一张图像 (image1) 从左上角 (0, 0) 开始粘贴,第二张图像 (image2) 从第一张图像的右上角 (width1, 0) 开始粘贴。最后,新的合并图像将保存到磁盘中,名为“concatenated_image_horizontal.jpg”。

输出

上述代码片段的输出将是一个名为 concatenated_image_horizontal.jpg 的新图像,它将是两张输入图像的水平合并。

从输出中可以看到,两张图像被水平粘贴在一起以创建最终图像,从而形成水平合并。

垂直合并

垂直合并是将两张或多张图像垂直组合成一张图像的过程。

要垂直合并图像,我们只需要更改传递给 paste() 方法的参数。以下是一个代码片段,演示了如何使用 Pillow 垂直合并图像:

示例

from PIL import Image

# Load the images
image1 = Image.open("image1.jpg")
image2 = Image.open("image2.jpg")

# Get the dimensions of the images
width1, height1 = image1.size
width2, height2 = image2.size

# Create a new image with the combined width and the height of the tallest image
new_width = max(width1, width2)
new_height = height1 + height2
new_image = Image.new("RGB", (new_width, new_height))

# Paste the two images onto the new image
new_image.paste(image1, (0, 0))
new_image.paste(image2, (0, height1))

# Save the new image
new_image.save("concatenated_image_vertical.jpg")

在上面的代码片段中,我们创建一个新的图像对象,其高度为两张图像高度的总和,宽度为最宽图像的宽度。然后,使用 paste() 方法将这两张图像粘贴到新图像上。image1 粘贴在 (0, 0) 位置,即新图像的左上角。image2 粘贴在 image1 下方,位置为 (0, height1),其中 height1 是 image1 的高度。

最后,使用 save() 方法将合并的图像保存为“concatenated_image_vertical.jpg”。

输出

上述代码片段的输出将是一个名为“concatenated_image_vertical.jpg”的新图像。

从输出中可以看到,两张图像被水平粘贴在一起以创建最终图像,从而形成水平合并。

结论

在本教程中,我们学习了如何使用 Python 中的 Pillow 合并图像。我们使用 Pillow 库加载和处理图像,然后使用 Image 模块的 concatenate() 方法水平和垂直合并图像。

我们为每种方法提供了一个示例,您可以使用这些示例来创建令人惊艳的图像拼贴画、将多张图像组合成一张图像或创建图像序列。通过遵循本教程中概述的步骤,您可以轻松地在 Python 中合并图像并在您的项目中使用它们。

更新于:2023年7月21日

1K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告