From eb286c0a0e5f6c1961297fdf8a42c33d089b0a1e Mon Sep 17 00:00:00 2001 From: vincent Date: Sun, 20 Aug 2023 12:47:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BF=87=E6=97=B6=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- img_manager.py | 58 -------------------------------------------------- 1 file changed, 58 deletions(-) delete mode 100644 img_manager.py diff --git a/img_manager.py b/img_manager.py deleted file mode 100644 index 7549b27..0000000 --- a/img_manager.py +++ /dev/null @@ -1,58 +0,0 @@ -from requester import Requester -from web_img import WebImg - -from PIL import Image -import io -from web_img import WebImg -from requester import Requester - - -class ImgManager: - def __init__(self, img_url_list: list[str]): - self.img_url_list = img_url_list - self.img_list = self.__create_web_img_list() - - def __create_web_img_list(self): - return [WebImg(self.task_name, url) for url in self.img_url_list] - - def batch_fetch_images(self): - requester = Requester() - requester.batch_fetch_images_to_img_obj_list(self.img_list) - - def concatenate_images_vertically(self): - """ - 垂直拼接长图片 - """ - try: - # 计算拼接后的长图宽度和总高度 - max_width = max( - Image.open(io.BytesIO(web_img.data)).width for web_img in self.img_list - ) - total_height = sum( - Image.open(io.BytesIO(web_img.data)).height for web_img in self.img_list - ) - - # 创建一张新的长图 - long_image = Image.new( - "RGB", (max_width, total_height), color=(255, 255, 255) - ) - - # 依次将图片在垂直方向上拼接起来 - y_offset = 0 - for web_img in self.img_list: - img = Image.open(io.BytesIO(web_img.data)) - img_width, img_height = img.size - x_offset = (max_width - img_width) // 2 # 居中拼接 - long_image.paste(img, (x_offset, y_offset)) - y_offset += img_height - - return long_image - - except Exception as e: - task_name = self.img_list[0].task_name - print(f"{task_name}, 拼接图片失败:{e}") - return None - - def save_long_image(self): - long_image = self.concatenate_images_vertically() # 垂直拼接长图片 - long_image.save(f"output/{self.img_list[0].task_name}.png") # 保存长图到本地