详解如何使用Python 3模块pillow合并相同大小的图像

  • Post category:Python

使用Python 3模块pillow合并相同大小的图像,需要通过以下步骤进行:

步骤一:导入Pillow模块

首先,我们需要导入Pillow模块,使我们能够使用其提供的图像处理功能。在Python中,可以通过以下命令导入Pillow模块(注意,模块名称为PIL):

from PIL import Image

步骤二:打开图像文件

接下来,需要使用Pillow库中提供的Image.open()方法来打开要合并的图像文件,例如:

im1 = Image.open("image1.jpg")   # 打开第一张图像文件
im2 = Image.open("image2.jpg")   # 打开第二张图像文件

步骤三:确认图像尺寸一致

在合并图像之前,需要确保它们的尺寸是一致的。我们可以使用Pillow库中的size属性来检查图像尺寸:

if im1.size != im2.size:
    print("两张图像尺寸不一致,无法合并!")   # 输出错误信息
    exit()   # 退出程序

## 步骤四:创建新的图像文件

创建新图像的方式取决于您希望如何合并原始图像。您可以使用Pillow库中的`Image.new()`方法来创建新图像,并指定其尺寸、模式和颜色:

```python
new_image = Image.new('RGB', (im1.width + im2.width, im1.height), (255, 255, 255))

以上代码将创建一个新的RGB模式图像,它的宽度是两张原始图像的宽度之和,高度等于其中任意一张图像的高度。此外,新图像被填充为纯白色。

步骤五:将原始图像复制到新图像中

接下来,我们将原始图像复制到新图像中。首先,我们需要使用Pillow库中提供的paste()方法将第一张图像复制到新图像的左边:

new_image.paste(im1, (0, 0))

在这里,paste()方法的第一个参数是要复制的图像,第二个参数是该图像要粘贴到新图像的位置。

接下来,我们将第二张图像复制到新图像的右边。和第一张图像不同的是,我们需要将复制位置向右移动一定距离:

new_image.paste(im2, (im1.width, 0))

这里,im1.width表示第一张图像的宽度。

步骤六:保存新图像

最后一步是将新图像保存到磁盘上。您可以使用Pillow库中的save()方法来完成这个过程:

new_image.save("merged_image.jpg")

以上代码将新图像保存为“merged_image.jpg”文件。

下面是合并两张图片的示例代码1:

from PIL import Image

# 打开第一张图像文件
im1 = Image.open("image1.jpg")

# 打开第二张图像文件
im2 = Image.open("image2.jpg")

# 检查两张图像的尺寸是否一致
if im1.size != im2.size:
    print("两张图像尺寸不一致,无法合并!")
    exit()

# 创建新的图像文件
new_image = Image.new('RGB', (im1.width + im2.width, im1.height), (255, 255, 255))

# 将第一张图像复制到新图像的左边
new_image.paste(im1, (0, 0))

# 将第二张图像复制到新图像的右边
new_image.paste(im2, (im1.width, 0))

# 保存新图像
new_image.save("merged_image.jpg")

下面是合并两张图片的示例代码2:

from PIL import Image

# 打开第一张图像文件
im1 = Image.open("image1.jpg")

# 打开第二张图像文件
im2 = Image.open("image2.jpg")

# 检查两张图像的尺寸是否一致
if im1.size != im2.size:
    print("两张图像尺寸不一致,无法合并!")
    exit()

# 创建新的图像文件
new_image = Image.new('RGB', (im1.width + im2.width, im1.height), (0, 0, 0))

# 将第一张图像复制到新图像的左边
new_image.paste(im1, (0, 0))

# 将第二张图像复制到新图像的右边
new_image.paste(im2, (im1.width, 0))

# 保存新图像
new_image.save("merged_image.jpg")

以上两个示例代码中,示例代码1在创建新图像时使用纯白色作为背景颜色,而示例代码2则使用了黑色作为背景颜色,两段代码的区别在于Image.new()方法中的第三个参数。