1 回答

TA贡献1848条经验 获得超10个赞
您可以使用Image.new(...)创建合并图像,然后使用Image.paste(...)将所需图像复制到合并图像中:
def merge_images(imagelist, width, height, seqno):
if imagelist:
# create the merged image
merged_image = Image.new('RGB', (width, height), (0,0,0))
y = 0
for image in imagelist:
merged_image.paste(image, (0, y))
y += image.height
# save the merged image
dest_path = os.path.join(txt_dest_path.get(), 'desk%03d.jpg' % seqno)
merged_image.save(dest_path)
seqno += 1
return seqno
def merge():
MAX_HEIGHT = 2450
merge_list = []
height = 0
width = None
seqno = 1
for file in list_file.get(0, 'end'):
image = Image.open(file)
if width is None:
width = image.width
if height+image.height <= MAX_HEIGHT:
merge_list.append(image)
height += image.height
else:
seqno = merge_images(merge_list, width, height, seqno)
merge_list = [image]
height = image.height
merge_images(merge_list, width, height, seqno)
添加回答
举报