📅  最后修改于: 2023-12-03 15:38:37.279000             🧑  作者: Mango
Pillow 是 Python 图像处理库中非常流行的一个模块,它可以方便地实现图像的增强、调整大小、滤镜、裁剪、旋转、变换、合并等操作。本文将介绍如何使用 Pillow 实现将多张图像合成一张图像。
在使用 Pillow 之前,需要先安装该模块。可以使用 pip 命令进行安装:
pip install 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 可以很方便地实现图像的增强、调整大小、滤镜、裁剪、旋转、变换、合并等操作,使得图像处理变得更加简单和高效。