重构代码

This commit is contained in:
vincent 2023-07-21 17:37:24 +08:00
parent d3578dd05b
commit 10018266a6
2 changed files with 23 additions and 13 deletions

View File

@ -1 +1,4 @@
第61话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-60/
第60话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-59/
第59话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-58/
第58话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-57/

33
main.py
View File

@ -69,9 +69,23 @@ def set_img_obj_data(img_obj):
img_obj["data"] = data
def concatenate_images_vertically(img_obj_list, output_file):
def batch_download_images_to_img_obj_list(img_obj_list):
"""
垂直拼接图片,并保存到本地目录
使用 ThreadPoolExecutor 创建线程池 img_obj_list 中的每个图片对象调用 set_img_obj_data 函数
Args:
img_obj_list (list): 图片对象列表每个对象包含图片的数据等信息
Returns:
None
"""
with ThreadPoolExecutor() as executor:
executor.map(set_img_obj_data, img_obj_list)
def concatenate_images_vertically(img_obj_list):
"""
垂直拼接长图片
"""
try:
# 计算拼接后的长图宽度和总高度
@ -94,8 +108,7 @@ def concatenate_images_vertically(img_obj_list, output_file):
long_image.paste(img, (x_offset, y_offset))
y_offset += img_height
# 保存拼接后的长图到本地
long_image.save(output_file)
return long_image
except Exception as e:
file_name = img_obj_list[0]["file_name"]
@ -112,15 +125,9 @@ def process_batch(lines):
html_content = get_html(url, file_name)
img_url_list = get_img_urls(html_content)
img_obj_list = create_img_obj_list(img_url_list, file_name)
# 使用 ThreadPoolExecutor 创建线程池
with ThreadPoolExecutor() as executor:
# 多线程处理图片下载和替换
executor.map(set_img_obj_data, img_obj_list)
concatenate_images_vertically(
img_obj_list, output_file=f"imgs/{file_name}.png"
)
batch_download_images_to_img_obj_list(img_obj_list)
long_image = concatenate_images_vertically(img_obj_list) # 垂直拼接长图片
long_image.save(f"imgs/{file_name}.png") # 保存拼接后的长图到本地
if __name__ == "__main__":