import numpy as np
from PIL import Image
import os
# 读取图片位置
img01 = '路径//01.png'
img02 = '路径//02.png'
# 打开图片
imgopen01 = Image.open(img01)
imgopen02 = Image.open(img02)
# 将图片存入列表
new_images = list((imgopen01,imgopen02))
# 建立一个新列表,稍后将更改过图片尺寸后的图片存入其中
resized_images = []
# 通过循环,将列表里的每张图片的宽度尺寸以第一张图片为基准重设
for im in new_images:
if im == new_images[0]: # 第一张图片略过处理
pass
elif im.size[1] == new_images[0].size[1]: # 增加一个判断,如果图片与第一张图片高度一样,那么略过重设大小
pass
else:
im = im.resize((int(new_images[0].size[1] * im.size[0] / im.size[1]), new_images[0].size[1]), Image.ANTIALIAS)
resized_images.append(np.array(im)) # 将更改过尺寸的图片转化为ndarray对象并存入列表
imgjoin = np.concatenate(resized_images, axis=1) # 拼接图片,axis=1为横向拼接
imgcreate = Image.fromarray(imgjoin) # 生成图片
imgcreate.save('路径//final0001.png')
imagePath = os.path.join('路径//final0001.png')
imageSize = os.path.getsize(imagePath)
imageSize = imageSize/(1024*1024) # 除以1024是代表Kb, 1024*1024是Mb
while imageSize >= 1:
imgcreate=imgcreate.resize((int(imgcreate.size[0]*0.5), int(imgcreate.size[1]*0.5)), Image.ANTIALIAS)
imgcreate.save('路径//final0001.png')
imageSize = os.path.getsize('路径//final0001.png')
imageSize = imageSize / (1024 * 1024) # 除以1024是代表Kb
print("拼接完毕!")
图片处理:横排合并后压缩图片
最新推荐文章于 2023-07-10 18:40:11 发布