📜  如何在Python使用 Pillow 连接图像?(1)

📅  最后修改于: 2023-12-03 15:38:37.279000             🧑  作者: Mango

如何在Python使用 Pillow 连接图像?

Pillow 是 Python 图像处理库中非常流行的一个模块,它可以方便地实现图像的增强、调整大小、滤镜、裁剪、旋转、变换、合并等操作。本文将介绍如何使用 Pillow 实现将多张图像合成一张图像。

安装 Pillow

在使用 Pillow 之前,需要先安装该模块。可以使用 pip 命令进行安装:

pip install Pillow
Pillow 基本操作

首先,我们需要先了解一些 Pillow 的基本操作。

打开和展示图像

Pillow 可以打开常见的图像文件格式,例如 JPEG、PNG、BMP、GIF 等。

from PIL import Image

# 打开图像文件
img = Image.open('example.jpg')

# 展示图像
img.show()
调整和保存图像

可以使用 Pillow 对图像进行简单的调整,例如调整图像尺寸、旋转、裁剪,以及使用滤镜效果等。

from PIL import Image

# 打开图像文件
img = Image.open('example.jpg')

# 调整图像尺寸
img = img.resize((800,600))

# 图像旋转
img = img.rotate(45)

# 图像裁剪
img = img.crop((300,200,600,400))

# 使用滤镜效果
from PIL import ImageFilter
img = img.filter(ImageFilter.GaussianBlur(radius=10))

# 保存图像
img.save('new_example.jpg')
图像合并

Pillow 支持将多张图像合并成一张图像,以下是一些常见的合并方式。

水平合并

将多张图像水平合并,生成一张宽度为所有被合并图像宽度之和的新图像。

from PIL import Image

# 打开多张图像文件
img1 = Image.open('example1.jpg')
img2 = Image.open('example2.jpg')
img3 = Image.open('example3.jpg')

# 计算新图像宽度
width = img1.width + img2.width + img3.width

# 计算新图像高度
height = max(img1.height, img2.height, img3.height)

# 创建一个新的空图像
merged_img = Image.new(mode='RGB', size=(width, height))

# 合并图像
merged_img.paste(im=img1, box=(0,0))
merged_img.paste(im=img2, box=(img1.width,0))
merged_img.paste(im=img3, box=(img1.width+img2.width,0))

# 展示图像
merged_img.show()

垂直合并

将多张图像垂直合并,生成一张高度为所有被合并图像高度之和的新图像。

from PIL import Image

# 打开多张图像文件
img1 = Image.open('example1.jpg')
img2 = Image.open('example2.jpg')
img3 = Image.open('example3.jpg')

# 计算新图像宽度
width = max(img1.width, img2.width, img3.width)

# 计算新图像高度
height = img1.height + img2.height + img3.height

# 创建一个新的空图像
merged_img = Image.new(mode='RGB', size=(width, height))

# 合并图像
merged_img.paste(im=img1, box=(0,0))
merged_img.paste(im=img2, box=(0,img1.height))
merged_img.paste(im=img3, box=(0,img1.height+img2.height))

# 展示图像
merged_img.show()
示例代码

下面是一个完整的使用 Pillow 实现将多张图像水平合并的示例代码:

from PIL import Image

# 打开多张图像文件
img1 = Image.open('example1.jpg')
img2 = Image.open('example2.jpg')
img3 = Image.open('example3.jpg')

# 计算新图像宽度
width = img1.width + img2.width + img3.width

# 计算新图像高度
height = max(img1.height, img2.height, img3.height)

# 创建一个新的空图像
merged_img = Image.new(mode='RGB', size=(width, height))

# 合并图像
merged_img.paste(im=img1, box=(0,0))
merged_img.paste(im=img2, box=(img1.width,0))
merged_img.paste(im=img3, box=(img1.width+img2.width,0))

# 展示和保存图像
merged_img.show()
merged_img.save('merged_image.jpg')
总结

本文介绍了如何使用 Pillow 对多张图像进行水平合并的操作。使用 Pillow 可以很方便地实现图像的增强、调整大小、滤镜、裁剪、旋转、变换、合并等操作,使得图像处理变得更加简单和高效。