一文详解如何使用Python批量拼接图片(小海豚按摩器)万万没想到

随心笔谈2年前发布 admin
179 0 0

文章摘要

这篇文章介绍了使用Python将多个小图像拼接成一个大图像的代码。代码的主要功能包括: 1. 从指定文件夹中读取所有PNG格式的图像文件。 2. 计算图像的尺寸,并根据给定参数n(每行显示的图像数)和m(每列显示的图像数)计算拼接后的大图像尺寸。 3. 创建一个全白的背景图像,然后将每个小图像按照指定的行列位置粘贴到背景图像上。 4. 最后保存生成的大图像文件。 代码通过`os`和`PIL.Image`模块实现,能够高效地处理图像拼接任务。

import os
import math
from PIL import Image

def merge_images(image_folder, output_file, n, m):
# 获取所有图像文件的列表
image_files=[os.path.join(image_folder, f) for f in os.listdir(image_folder) if f.endswith(‘.png’)]

# 计算每个小图像的大小和大图像的大小
image_count=len(image_files)
if image_count==0:
print(‘No image files found in the directory:’, image_folder)
return

# 计算小图像的大小以及大图像的大小
img=Image.open(image_files[0])
img_size0=img.size[0]
img_size1=img.size[1]
new_img_size0=img_size0 * n
new_img_size1=img_size1 * m

# 创建一个新的大图像
new_img=Image.new(‘RGB’, (new_img_size0, new_img_size1), ‘white’)

# 将所有小图像粘贴到新图像的正确位置
for i, f in enumerate(image_files):
row=int(i / n)
col=i % n
img=Image.open(f)
img=img.resize((img_size0, img_size1))
new_img.paste(img, (col * img_size0, row * img_size1))

# 保存大图像
new_img.save(output_file)

# 用法示例
image_folder=’C:/Users/someone/Desktop/img_denosing_test/paper_pics/set68/result’
output_file=’C:/Users/someone/Desktop/img_denosing_test/paper_pics/set68/result/output.png’
n=3 # 每行显示的图像数
m=2 # 每列显示的图像数
merge_images(image_folder, output_file, n, m)

© 版权声明

相关文章