最近做Unity需要拼接地图,手工操作太麻烦,然后写了一个Python可以帮助拼接照片,我的照片都是一样的大小,所以比较方便。而且是竖排拼接照片。
from PIL import Image
from os import listdir
cut_pictures = r'C:\Users\Administrator\Desktop\map\\' #需要拼接图片的文件夹位置
result_path_target = r'C:\Users\Administrator\Desktop\m\\'#拼接完成后图片的位置
ims = [Image.open(cut_pictures+'\\'+fn)for fn in listdir(cut_pictures) if fn.endswith(".png")] # 打开路径下的所有图片
width,height = ims[0].size#第一张照片的大小就是所有照片的大小,按像素划分大小
#把所有的图片每8张分为一组,需要其他分组的自己修改吧
list_of_groups = zip(*(iter(ims),) *8)
end_list = [list(i) for i in list_of_groups]
count = len(ims) % 8
end_list.append(ims[-count:]) if count !=0 else end_list
print(end_list)
num = 0
for i in end_list:
num+=1
result = Image.new(ims[0].mode,(width,height*len(i)))#创建新图片的大小
for j , im in enumerate(i):
result.paste(im,box=(0,j*height))
print(j)
result.save(result_path_target+'\\'+'%s.png'%num)
然后放个效果图说明一下是真的很方便。