如何使用Python 3模块Pillow合并相同大小的图像?
Pillow 或 PIL 是一个强大的 Python 库,用于处理和操作图像。图像处理中最常见的任务之一是将多张图像合并为单张图像。它提供了一系列用于加载、操作和保存各种格式图像的功能。Pillow 的主要功能之一是支持图像合并。它支持各种图像,包括“jpeg”、“png”、“bmp”、“gif”、“ppm”、“tiff”。使用此模块,我们几乎可以对数字图像做任何事情,例如基本的图像处理功能、点运算、使用内置卷积核过滤图像以及颜色空间转换。
在本文中,我们将学习如何在 Python 3 中使用 Pillow 模块合并相同大小的图像。
但在开始之前,让我们首先了解什么是图像合并以及为什么它很重要。图像合并是将两张或更多图像组合成单张图像的过程。它通常用于创建全景图、将多张图像合成到单个帧中或混合图像以创建新图像的应用程序。需要注意的是,为了合并图像,它们需要具有相同的大小。
使用 Pillow 合并相同大小图像的步骤
以下是使用 Python3 中的 Pillow 合并相同大小图像的步骤:
步骤 1:导入所需的模块
首先,我们需要导入所需的模块。在本例中,我们需要从 Pillow 库导入 Image 模块。
from PIL import Image
步骤 2:打开图像
接下来,我们需要打开要合并的图像。我们可以使用 Image.open() 方法来实现。此方法返回一个 Image 对象,我们可以用它来操作图像。
myimage1= Image.open('image1.jpg') myimage1= Image.open('image2.jpg')
步骤 3:检查图像的大小
在合并图像之前,我们需要确保图像具有相同的大小。我们可以使用 size 属性检查图像的大小。
if myimage1.size == myimage2.size: # continue with merging else: print('The images must have the same size to merge them using Pillow!')
步骤 4:创建新图像
我们需要创建一个新图像来保存合并后的图像。我们可以使用 Image.new() 方法来实现。此方法将新图像的模式和大小作为参数。
mymerged_image= Image.new('RGB', myimage1.size)
步骤 5:合并图像
最后,我们可以使用 Image.paste() 方法将一张图像粘贴到另一张图像上,从而合并图像。我们需要指定要粘贴图像的坐标。
mymerged_image.paste(myimage1, (0, 0)) mymerged_image.paste(myimage2, (myimage1.size[0], 0))
步骤 6:保存合并后的图像
我们可以使用 Image.save() 方法保存合并后的图像。
mymerged_image.save(mymerged_image.jpg')
现在,您必须很好地理解如何使用 python3 模块 pillow 合并相同大小的图像。让我们看看使用不同方法的一些详细示例。
示例 1:水平合并图像
在下面,我们将水平合并两张图像。第一张图像将在左侧,第二张图像将在右侧。
我们创建一个新的合并图像,其宽度等于其中一张输入图像的宽度,高度等于两张输入图像高度的总和。在这里,我们使用 Image.open() 方法读取两张输入图像 myimage1 和 myimage2。
接下来,我们检查两张图像的大小是否相同。如果相同,我们使用 Image.new() 方法创建一个新图像。Image.new() 方法接受两个参数:新图像的模式(在本例中为“RGB”)和新图像的大小(在本例中,新图像的宽度是两张输入图像宽度的总和,新图像的高度是其中一张输入图像的高度)。
创建新图像后,我们使用 paste() 方法水平合并两张输入图像。paste() 方法接受两个参数:要粘贴的图像和粘贴的位置。在本例中,我们将 image1 粘贴在新图像的左上角 ((0, 0)),并将 myimage2 粘贴在新图像的右上角 ((myimage1.size[0], 0))。最后,我们保存了合并后的图像。
#import the PIL from PIL import Image # Open the images myimage1 = Image.open('myimageone.jpg') myimage2 = Image.open('myimagetwo.jpg') # Checking the sizes of the images if myimage1.size == myimage2.size: # Creatin a new image mymerged_image = Image.new('RGB', (myimage1.size[0], myimage1.size[1] + myimage1.size[1])) # Merging the images horizontally mymerged_image.paste(myimage1, (0, 0)) mymerged_image.paste(myimage2, (myimage1.size[0], 0)) # Saving the merged image mymerged_image.save('mymerged_image_horizontal.jpg') else: print('The images must have the same size to merge them using Pillow')
输出
输入图像
输出图像
示例 2:垂直合并图像
在下面的示例中,我们将垂直合并两张图像。第一张图像将在顶部,第二张图像将在底部。
我们创建一个新图像,其宽度等于两张输入图像宽度的总和,高度等于其中一张输入图像的高度。现在,使用 PIL 模块,我们将第一张图像粘贴在新图像的左上角,并将第二张图像粘贴在新图像的右上角。最后,我们保存了合并后的图像。
#import the PIL from PIL import Image # Open the images myimage1 = Image.open('myimageone.jpg') myimage2 = Image.open('myimagetwo.jpg') # Checking the sizes of the images if myimage1.size == myimage2.size: # Creatin a new image mymerged_image = Image.new('RGB', (myimage1.size[0], myimage1.size[1] + myimage1.size[1])) # Merging the images vertically mymerged_image.paste(myimage1, (0, 0)) mymerged_image.paste(myimage2, (0, myimage1.size[1])) # Saving the merged image mymerged_image.save('mymerged_image_vertical.jpg') else: print('The images must have the same size to merge them using Pillow')
输出
输入图像
输出图像
结论
在 Python 中,合并相同大小的图像是图像处理中的一项常见任务。在本文中,我们学习了如何使用 Python 3 模块 pillow 合并两张相同大小的图像。我们看到了使用 Python 中的 Pillow 合并图像的完整步骤,以及水平和垂直合并图像的两个完整示例。通过遵循这些步骤,您可以轻松地使用 Pillow 合并相同大小的图像。