You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
comico/zhuimh/merge_images.py

45 lines
1.5 KiB

# -*- coding: utf-8 -*-
import os
from PIL import Image
current_dir_path = os.path.dirname(os.path.abspath(__file__))
# 设置起始目录
start_dir = os.path.join(current_dir_path, 'downloads')
# 遍历downloads文件夹
for root, dirs, files in os.walk(start_dir):
for dir in dirs:
sub_dir = os.path.join(root, dir)
for sub_root, sub_dirs, sub_files in os.walk(sub_dir):
for sub_sub_dir in sub_dirs:
sub_sub_dir_path = os.path.join(sub_root, sub_sub_dir)
print(sub_sub_dir_path)
png_count = 0
images = []
for file in os.listdir(sub_sub_dir_path):
if file.lower().endswith('.png'):
images.append(os.path.join(sub_sub_dir_path, file))
png_count += 1
if not images:
raise ValueError("图片列表不能为空")
total_image = Image.open(images[0])
for image in images[1:]:
img = Image.open(image)
new_image = Image.new('RGB', (max(total_image.width, img.width), total_image.height + img.height))
new_image.paste(total_image, (0, 0))
new_image.paste(img, (0, total_image.height))
total_image = new_image
total_image.save(f'{sub_sub_dir_path}.png')
break
break
break