python 多张图片拼接为一张长图

from PIL import Image
from os import listdir
'''
result_path_target  图片存放目标路径
cut_pictures 待拼接图片存放路径
num 图片命名以数字按序增加

'''

cut_pictures = r'E:\照片'
result_path_target = r'E:\照片\1'
num = 1

ims = [Image.open(cut_pictures+'\\'+fn)for fn in listdir(cut_pictures)  if fn.endswith(".jpg")]       #  打开路径下的所有图片
width,height = ims[0].size  #获取拼接图片的宽和高
print(ims)
result = Image.new(ims[0].mode,(width,height*len(ims)))
for j , im in enumerate(ims):
    result.paste(im,box=(0,j*height))
    print(j)
result.save(result_path_target+'\\'+'%s.jpg'%num)


下图是最初待拼接的图片,可以看到四张是大小一致的,多张图片拼接,最后拼接的结果是会按照第一张的图片大小来设定的,所以后面五张与第一张图片大小不一致的图片很可能不会全部显示出来,因此必须要使用大小一致的图片。


python 多张图片拼接为一张长图_第1张图片
image.png

结果图,几张图片最后拼接的结果。大家可以仔细观察以下,顺序并不是按照我们看到的文件夹的图片顺序,这是因为计算机文件夹的显示顺序并不是我们程序读取此文件夹内容的顺序,图片拼接的顺序以程序读出的图片顺序为准。


python 多张图片拼接为一张长图_第2张图片
image.png

这是程序读出的顺序


image.png

你可能感兴趣的:(python 多张图片拼接为一张长图)