|
@@ -0,0 +1,374 @@
|
|
|
|
|
+"""
|
|
|
|
|
+步骤:
|
|
|
|
|
+1、整理需要处理的款号图-输出款号图文件夹
|
|
|
|
|
+2、整理所有相关的图片作为素材图
|
|
|
|
|
+3、按要求进行拼接
|
|
|
|
|
+"""
|
|
|
|
|
+import os
|
|
|
|
|
+from PIL import ImageFont
|
|
|
|
|
+import sys
|
|
|
|
|
+import settings
|
|
|
|
|
+
|
|
|
|
|
+# from module.view_control.generate_goods_no_detail_pic.detail_generate_base import DetailBase
|
|
|
|
|
+# from module.view_control.generate_goods_no_detail_pic.pic_deal import PictureProcessing
|
|
|
|
|
+is_test_plugins = False
|
|
|
|
|
+try:
|
|
|
|
|
+ is_test_plugins = settings.is_test_plugins
|
|
|
|
|
+except:
|
|
|
|
|
+ is_test_plugins = False
|
|
|
|
|
+
|
|
|
|
|
+if is_test_plugins:
|
|
|
|
|
+ from custom_plugins.plugins_mode.detail_generate_base import DetailBase
|
|
|
|
|
+ from custom_plugins.plugins_mode.pic_deal import PictureProcessing
|
|
|
|
|
+else:
|
|
|
|
|
+ from plugins_mode.detail_generate_base import DetailBase
|
|
|
|
|
+ from plugins_mode.pic_deal import PictureProcessing
|
|
|
|
|
+
|
|
|
|
|
+plugins_name = "详情模板"
|
|
|
|
|
+company_name_list = ["miniso"]
|
|
|
|
|
+template_name = "miniso-1"
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+# 运动鞋详情页
|
|
|
|
|
+
|
|
|
|
|
+class DetailPicGet(DetailBase):
|
|
|
|
|
+ need_view = ["俯视", "侧视", "后跟", "鞋底", "内里"]
|
|
|
|
|
+ root = r"{}\resources\detail_temp\miniso\1".format(os.getcwd())
|
|
|
|
|
+
|
|
|
|
|
+ def __init__(self, goods_no, goods_no_value: dict, out_put_dir, windows=None, test=False, excel_data=None,
|
|
|
|
|
+ assigned_page_list=None, **kwargs):
|
|
|
|
|
+
|
|
|
|
|
+ super().__init__(goods_no, goods_no_value, out_put_dir, windows=windows, excel_data=excel_data,
|
|
|
|
|
+ assigned_page_list=assigned_page_list)
|
|
|
|
|
+ self.template_name = template_name
|
|
|
|
|
+ self.root = r"{}\resources\detail_temp\miniso\1".format(os.getcwd())
|
|
|
|
|
+ self.basic_width = PictureProcessing(r"{}\1.jpg".format(self.root)).width
|
|
|
|
|
+ print(f"run {template_name}")
|
|
|
|
|
+ # 红色
|
|
|
|
|
+ self.red_color = (248, 55, 69)
|
|
|
|
|
+ # 灰色
|
|
|
|
|
+ self.gray_color = (227, 227, 227)
|
|
|
|
|
+ self.white_color = (255, 255, 255)
|
|
|
|
|
+ self.black_color = (0, 0, 0)
|
|
|
|
|
+ self.base_bg_color = (255, 255, 255)
|
|
|
|
|
+ self.deal_pic_func_list = [
|
|
|
|
|
+ self.deal_pic_1,
|
|
|
|
|
+ self.deal_pic_2,
|
|
|
|
|
+ self.deal_pic_3,
|
|
|
|
|
+ self.deal_pic_4,
|
|
|
|
|
+ # self.deal_pic_5,
|
|
|
|
|
+ ]
|
|
|
|
|
+ if test:
|
|
|
|
|
+ self.run_test()
|
|
|
|
|
+ else:
|
|
|
|
|
+ self.run_all()
|
|
|
|
|
+
|
|
|
|
|
+ def run_test(self):
|
|
|
|
|
+ detailed_images = []
|
|
|
|
|
+ detailed_images.append(self.deal_pic_1())
|
|
|
|
|
+ detailed_images.append(self.deal_pic_2())
|
|
|
|
|
+ detailed_images.append(self.deal_pic_3())
|
|
|
|
|
+ detailed_images.append(self.deal_pic_4())
|
|
|
|
|
+ # detailed_images.append(self.deal_pic_5())
|
|
|
|
|
+ img = self.add_pic(detailed_images)
|
|
|
|
|
+ if img:
|
|
|
|
|
+ self.create_folder(r"{}/{}".format(self.out_put_dir, template_name))
|
|
|
|
|
+ img.save(r"{}/{}/{}.jpg".format(self.out_put_dir, template_name, self.goods_no, format="JPEG"))
|
|
|
|
|
+ img.show()
|
|
|
|
|
+
|
|
|
|
|
+ # 斜视图展示 多色进行拼接
|
|
|
|
|
+ def deal_pic_1(self):
|
|
|
|
|
+ detailed_images = []
|
|
|
|
|
+ font_title = ImageFont.truetype(r"resources\ttf\mi\MiSans-Bold.ttf", 60) # 颜色名称
|
|
|
|
|
+ font_ml = ImageFont.truetype(r"resources\ttf\mi\MiSans-Bold.ttf", 40) # 颜色名称
|
|
|
|
|
+ first_bg = PictureProcessing(r"{}\2.jpeg".format(self.root))
|
|
|
|
|
+ first_bg = first_bg.resize(value=self.basic_width)
|
|
|
|
|
+ circle_bg = PictureProcessing(r"{}\circle.png".format(self.root))
|
|
|
|
|
+ circle_bg = circle_bg.resize(value=circle_bg.width + 60)
|
|
|
|
|
+ circle_bg = circle_bg.resize(base='high', value=circle_bg.height + 10)
|
|
|
|
|
+ title_text = self.get_text_value("标题一")
|
|
|
|
|
+ ml_text = self.get_text_value("毫升")
|
|
|
|
|
+ title_bg = PictureProcessing().get_text_image_advanced(
|
|
|
|
|
+ font=font_title,
|
|
|
|
|
+ text=title_text,
|
|
|
|
|
+ fill=self.white_color,
|
|
|
|
|
+ return_mode="min_image",
|
|
|
|
|
+ )
|
|
|
|
|
+ ml_bg = PictureProcessing().get_text_image_advanced(
|
|
|
|
|
+ font=font_ml,
|
|
|
|
|
+ text=ml_text,
|
|
|
|
|
+ fill=self.white_color,
|
|
|
|
|
+ return_mode="min_image",
|
|
|
|
|
+ )
|
|
|
|
|
+ first_bg = first_bg.paste_img(top_img=title_bg, value=(40, 100), base="nw")
|
|
|
|
|
+ circle_bg = circle_bg.paste_img(top_img=ml_bg, value=(0, 0), base="cc")
|
|
|
|
|
+ first_bg = first_bg.paste_img(top_img=circle_bg, value=(40, 300), base="nw")
|
|
|
|
|
+ goods_art_no_list = list(self.data.keys())
|
|
|
|
|
+ pp_jpg_1, pp_png_1 = self.image_one_pic(return_orign=True,
|
|
|
|
|
+ goods_art_no=goods_art_no_list[0],
|
|
|
|
|
+ name="俯视",
|
|
|
|
|
+ )
|
|
|
|
|
+ pp_jpg_1 = pp_jpg_1.resize(value=self.basic_width / 2.8)
|
|
|
|
|
+ pp_png_1 = pp_png_1.resize(value=self.basic_width / 2.8)
|
|
|
|
|
+ first_bg = first_bg.to_overlay_pic_advance(top_img=pp_jpg_1, top_png_img=pp_png_1, base="nc", value=(0, 380))
|
|
|
|
|
+ # 图2
|
|
|
|
|
+ second_bg = PictureProcessing("RGB", (self.basic_width, 825), self.white_color)
|
|
|
|
|
+ second_bg = second_bg.radius(value=80, circular_pos=(1, 1, 1, 1))
|
|
|
|
|
+ second_font_title = ImageFont.truetype(r"resources\ttf\mi\MiSans-Bold.ttf", 70) # 颜色名称
|
|
|
|
|
+ second_title_text = self.get_text_value("标题二")
|
|
|
|
|
+ second_title_bg = PictureProcessing().get_text_image_advanced(
|
|
|
|
|
+ font=second_font_title,
|
|
|
|
|
+ text=second_title_text,
|
|
|
|
|
+ fill=self.black_color,
|
|
|
|
|
+ return_mode="min_image",
|
|
|
|
|
+ )
|
|
|
|
|
+ second_bg = second_bg.paste_img(top_img=second_title_bg, value=(68, 50), base="nw")
|
|
|
|
|
+ second_sub_bg = PictureProcessing("RGB", (self.basic_width * 0.9, 500), self.red_color)
|
|
|
|
|
+ second_sub_bg = second_sub_bg.radius(value=80, circular_pos=(1, 1, 1, 1))
|
|
|
|
|
+ _, pp_png_1 = self.image_one_pic(return_orign=True,
|
|
|
|
|
+ goods_art_no=goods_art_no_list[0],
|
|
|
|
|
+ name="内里",
|
|
|
|
|
+ )
|
|
|
|
|
+ pp_cup = pp_png_1.resize(value=second_sub_bg.width * 0.6)
|
|
|
|
|
+ second_sub_bg = second_sub_bg.paste_img(top_img=pp_cup, value=(0, 0), base="cc")
|
|
|
|
|
+ second_bg = second_bg.paste_img(top_img=second_sub_bg, value=(0, 260), base="nc")
|
|
|
|
|
+ # 图2结束
|
|
|
|
|
+ basic_bg = PictureProcessing("RGB", (self.basic_width, first_bg.height + second_bg.height - 100),
|
|
|
|
|
+ (227, 227, 227))
|
|
|
|
|
+ basic_bg = basic_bg.paste_img(top_img=first_bg, value=(0, 0), base="nc")
|
|
|
|
|
+ basic_bg = basic_bg.paste_img(top_img=second_bg, value=(0, first_bg.height - 120), base="nc")
|
|
|
|
|
+ detailed_images.append(basic_bg)
|
|
|
|
|
+
|
|
|
|
|
+ return PictureProcessing(im=self.add_pic(detailed_images))
|
|
|
|
|
+
|
|
|
|
|
+ # 展示基础信息
|
|
|
|
|
+ def deal_pic_2(self):
|
|
|
|
|
+ detailed_images = []
|
|
|
|
|
+ goods_art_no_list = list(self.data.keys())
|
|
|
|
|
+ # 区域1
|
|
|
|
|
+ font_title = ImageFont.truetype(r"resources\ttf\mi\MiSans-Bold.ttf", 60) # 颜色名称
|
|
|
|
|
+ title_text = self.get_text_value("标题三")
|
|
|
|
|
+ area_1 = PictureProcessing("RGB", (self.basic_width * 0.9, 500), self.red_color)
|
|
|
|
|
+ area_1 = area_1.radius(value=80, circular_pos=(1, 1, 1, 1))
|
|
|
|
|
+ _, pp_png_1 = self.image_one_pic(return_orign=True,
|
|
|
|
|
+ goods_art_no=goods_art_no_list[0],
|
|
|
|
|
+ name="侧视",
|
|
|
|
|
+ )
|
|
|
|
|
+ pp_png_1_copy = pp_png_1
|
|
|
|
|
+ pp_png_1 = pp_png_1.resize(value=area_1.width * 0.4)
|
|
|
|
|
+ pp_png_1 = pp_png_1.rotate_advance(doge=40)
|
|
|
|
|
+ area_1 = area_1.paste_img(top_img=pp_png_1, value=(-100, 20), base="en")
|
|
|
|
|
+ # 区域1结束
|
|
|
|
|
+ # 区域2
|
|
|
|
|
+ area_2 = PictureProcessing("RGB", (self.basic_width * 0.43, 500), self.red_color)
|
|
|
|
|
+ area_2 = area_2.radius(value=40, circular_pos=(1, 1, 1, 1))
|
|
|
|
|
+ pp_png_1_copy = pp_png_1_copy.resize(value=area_2.width * 1.1)
|
|
|
|
|
+ pp_png_1_copy = pp_png_1_copy.rotate_advance(doge=40)
|
|
|
|
|
+ area_2 = area_2.paste_img(top_img=pp_png_1_copy, value=(-area_2.width * 1.1, 50), base="en")
|
|
|
|
|
+ # 区域2结束
|
|
|
|
|
+ # 区域3
|
|
|
|
|
+ _, pp_png_3 = self.image_one_pic(return_orign=True,
|
|
|
|
|
+ goods_art_no=goods_art_no_list[0],
|
|
|
|
|
+ name="后跟",
|
|
|
|
|
+ )
|
|
|
|
|
+ area_3 = PictureProcessing("RGB", (self.basic_width * 0.43, area_2.height / 2 - 20), self.red_color)
|
|
|
|
|
+ area_3 = area_3.radius(value=40, circular_pos=(1, 1, 1, 1))
|
|
|
|
|
+ pp_png_3 = pp_png_3.resize(value=area_3.width / 1.5)
|
|
|
|
|
+ area_3 = area_3.paste_img(top_img=pp_png_3, value=(0, 0), base="en")
|
|
|
|
|
+ # 区域3结束
|
|
|
|
|
+ # 区域4
|
|
|
|
|
+ _, pp_png_4 = self.image_one_pic(return_orign=True,
|
|
|
|
|
+ goods_art_no=goods_art_no_list[0],
|
|
|
|
|
+ name="鞋底",
|
|
|
|
|
+ )
|
|
|
|
|
+ area_4 = PictureProcessing("RGB", (self.basic_width * 0.43, area_2.height / 2 - 20), self.red_color)
|
|
|
|
|
+ area_4 = area_4.radius(value=40, circular_pos=(1, 1, 1, 1))
|
|
|
|
|
+ pp_png_4 = pp_png_4.resize(value=area_4.width / 1.2)
|
|
|
|
|
+ pp_png_4 = pp_png_4.rotate_advance(doge=36)
|
|
|
|
|
+ area_4 = area_4.paste_img(top_img=pp_png_4, value=(-40, -80), base="en")
|
|
|
|
|
+ # 区域4结束
|
|
|
|
|
+ title_bg = PictureProcessing().get_text_image_advanced(
|
|
|
|
|
+ font=font_title,
|
|
|
|
|
+ text=title_text,
|
|
|
|
|
+ fill=self.black_color,
|
|
|
|
|
+ return_mode="min_image",
|
|
|
|
|
+ )
|
|
|
|
|
+ basic_bg = PictureProcessing("RGB", (self.basic_width, area_1.height + area_2.height + 170), self.white_color)
|
|
|
|
|
+ basic_bg = basic_bg.radius(value=80, circular_pos=(1, 1, 1, 1))
|
|
|
|
|
+ basic_bg = basic_bg.paste_img(top_img=area_1, value=(0, 150), base="nc")
|
|
|
|
|
+ basic_bg = basic_bg.paste_img(top_img=area_2, value=(self.basic_width * 0.05, area_1.height + 170), base="nw")
|
|
|
|
|
+ basic_bg = basic_bg.paste_img(top_img=area_3, value=(self.basic_width * 0.05, area_1.height + 170), base="en")
|
|
|
|
|
+ basic_bg = basic_bg.paste_img(top_img=area_4,
|
|
|
|
|
+ value=(self.basic_width * 0.05, area_1.height + area_3.height + 210), base="en")
|
|
|
|
|
+ basic_bg = basic_bg.paste_img(top_img=title_bg, value=(self.basic_width * 0.1, 50), base="nw")
|
|
|
|
|
+ basic_bg = basic_bg.radius(value=80, circular_pos=(1, 1, 0, 0))
|
|
|
|
|
+ # 文本介绍
|
|
|
|
|
+ # 介绍卖点
|
|
|
|
|
+ font_desc = ImageFont.truetype(r"resources\ttf\mi\MiSans-Semibold.ttf", 35) # 颜色名称
|
|
|
|
|
+ text_list = [
|
|
|
|
|
+ {
|
|
|
|
|
+ "text": "细节一",
|
|
|
|
|
+ "default": "轻盈缓震,健步如飞,久走不累",
|
|
|
|
|
+ "pos": (self.basic_width * 0.08, 458),
|
|
|
|
|
+ "base": "nw",
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ "text": "细节二",
|
|
|
|
|
+ "default": "透气网面,干爽舒适,告别闷热",
|
|
|
|
|
+ "pos": (self.basic_width * 0.08, 1078),
|
|
|
|
|
+ "base": "nw",
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ "text": "细节三",
|
|
|
|
|
+ "default": "柔韧大底,灵活弯折,自在穿行",
|
|
|
|
|
+ "pos": (self.basic_width * 0.3, 858),
|
|
|
|
|
+ "base": "en",
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ "text": "细节四",
|
|
|
|
|
+ "default": "柔韧大底,灵活弯折,自在穿行",
|
|
|
|
|
+ "pos": (self.basic_width * 0.33, 1118),
|
|
|
|
|
+ "base": "en",
|
|
|
|
|
+ },
|
|
|
|
|
+ ]
|
|
|
|
|
+ for text_data in text_list:
|
|
|
|
|
+ text = self.get_text_value(text_data["text"])
|
|
|
|
|
+ if not text:
|
|
|
|
|
+ text = text_data["default"]
|
|
|
|
|
+ temp_pp = PictureProcessing().get_text_image_advanced(
|
|
|
|
|
+ font=font_desc,
|
|
|
|
|
+ text=text,
|
|
|
|
|
+ fill=self.white_color,
|
|
|
|
|
+ return_mode="min_image",
|
|
|
|
|
+ )
|
|
|
|
|
+ basic_bg = basic_bg.paste_img(top_img=temp_pp, value=text_data["pos"], base=text_data["base"])
|
|
|
|
|
+ hide_basic_bg = PictureProcessing("RGB", (self.basic_width, basic_bg.height),
|
|
|
|
|
+ self.gray_color)
|
|
|
|
|
+ hide_basic_bg = hide_basic_bg.paste_img(top_img=basic_bg, value=(0, 0), base="cc")
|
|
|
|
|
+ detailed_images.append(hide_basic_bg)
|
|
|
|
|
+ bottom_bg = PictureProcessing("RGB", (self.basic_width, 150), self.white_color)
|
|
|
|
|
+ small_title = ImageFont.truetype(r"resources\ttf\mi\MiSans-Light.ttf", 20) # 颜色名称
|
|
|
|
|
+ small_text = "*数据为第三方实验室侧视所得。保温效果因使用环境\n及初始水温可能略有差异,请以实际为准。"
|
|
|
|
|
+ small_text_bg = PictureProcessing().get_text_image_advanced(
|
|
|
|
|
+ font=small_title,
|
|
|
|
|
+ text=small_text,
|
|
|
|
|
+ fill=self.black_color,
|
|
|
|
|
+ align="center",
|
|
|
|
|
+ return_mode="min_image",
|
|
|
|
|
+ )
|
|
|
|
|
+ hide_bottom_bg = PictureProcessing("RGB", (self.basic_width, bottom_bg.height + 20),
|
|
|
|
|
+ self.gray_color)
|
|
|
|
|
+ bottom_bg = bottom_bg.paste_img(top_img=small_text_bg, value=(0, 0), base="cc")
|
|
|
|
|
+ bottom_bg = bottom_bg.radius(value=80, circular_pos=(0, 0, 1, 1))
|
|
|
|
|
+ hide_bottom_bg = hide_bottom_bg.paste_img(top_img=bottom_bg, value=(0, 0), base="nc")
|
|
|
|
|
+ detailed_images.append(hide_bottom_bg)
|
|
|
|
|
+ return PictureProcessing(im=self.add_pic(detailed_images))
|
|
|
|
|
+
|
|
|
|
|
+ # 细节展示
|
|
|
|
|
+ def deal_pic_3(self):
|
|
|
|
|
+ detailed_images = []
|
|
|
|
|
+ goods_art_no_list = list(self.data.keys())
|
|
|
|
|
+ hidden_bg = PictureProcessing("RGB", (self.basic_width, 1140), self.gray_color)
|
|
|
|
|
+ white_bg = PictureProcessing("RGB", (self.basic_width, hidden_bg.height - 50), self.white_color)
|
|
|
|
|
+ white_bg = white_bg.radius(value=80, circular_pos=(1, 1, 1, 1))
|
|
|
|
|
+ red_bg = PictureProcessing(r"{}\2.jpeg".format(self.root))
|
|
|
|
|
+ red_bg = red_bg.resize(value=white_bg.width * 0.9)
|
|
|
|
|
+ red_bg = red_bg.resize(value=white_bg.height - 60, base='high')
|
|
|
|
|
+ # 粘贴
|
|
|
|
|
+ pp_jpg_1, pp_png_1 = self.image_one_pic(return_orign=True,
|
|
|
|
|
+ goods_art_no=goods_art_no_list[0],
|
|
|
|
|
+ name="俯视",
|
|
|
|
|
+ )
|
|
|
|
|
+ pp_jpg_1 = pp_jpg_1.resize(value=self.basic_width / 2.3)
|
|
|
|
|
+ pp_png_1 = pp_png_1.resize(value=self.basic_width / 2.3)
|
|
|
|
|
+ red_bg = red_bg.to_overlay_pic_advance(top_img=pp_jpg_1, top_png_img=pp_png_1, base="nc", value=(0, 80))
|
|
|
|
|
+ red_bg = red_bg.radius(value=80, circular_pos=(1, 1, 1, 1))
|
|
|
|
|
+ font_ml = ImageFont.truetype(r"resources\ttf\mi\MiSans-Bold.ttf", 40) # 颜色名称
|
|
|
|
|
+ circle_bg = PictureProcessing(r"{}\circle.png".format(self.root))
|
|
|
|
|
+ circle_bg = circle_bg.resize(value=circle_bg.width + 80)
|
|
|
|
|
+ ml_text = "产品实拍"
|
|
|
|
|
+ ml_bg = PictureProcessing().get_text_image_advanced(
|
|
|
|
|
+ font=font_ml,
|
|
|
|
|
+ text=ml_text,
|
|
|
|
|
+ fill=self.white_color,
|
|
|
|
|
+ return_mode="min_image",
|
|
|
|
|
+ )
|
|
|
|
|
+ circle_bg = circle_bg.paste_img(top_img=ml_bg, value=(0, 0), base="cc")
|
|
|
|
|
+ red_bg = red_bg.paste_img(top_img=circle_bg, value=(40, 50), base="nw")
|
|
|
|
|
+ white_bg = white_bg.paste_img(top_img=red_bg, value=(0, 0), base="cc")
|
|
|
|
|
+ hidden_bg = hidden_bg.paste_img(top_img=white_bg, value=(0, 0), base="cc")
|
|
|
|
|
+ # 展示鞋面材质 粘贴内里顶视图
|
|
|
|
|
+ detailed_images.append(hidden_bg)
|
|
|
|
|
+ # raise 1
|
|
|
|
|
+ return PictureProcessing(im=self.add_pic(detailed_images))
|
|
|
|
|
+
|
|
|
|
|
+ # 展示产品信息和颜色图
|
|
|
|
|
+ def deal_pic_4(self):
|
|
|
|
|
+ detailed_images = []
|
|
|
|
|
+ face = PictureProcessing(r"{}\face.png".format(self.root))
|
|
|
|
|
+ goods_art_no_list = list(self.data.keys())
|
|
|
|
|
+ font_1 = ImageFont.truetype(r"resources\ttf\mi\MiSans-Bold.ttf", 60) # 颜色名称
|
|
|
|
|
+ hidden_bg = PictureProcessing("RGB", (self.basic_width, 950), self.gray_color)
|
|
|
|
|
+ white_bg = PictureProcessing("RGB", (self.basic_width, hidden_bg.height), self.white_color)
|
|
|
|
|
+ white_bg = white_bg.radius(value=80, circular_pos=(1, 1, 0, 0))
|
|
|
|
|
+ red_bg2 = PictureProcessing("RGB", (white_bg.width * 0.9, 800), self.red_color)
|
|
|
|
|
+ red_bg2 = red_bg2.radius(value=80, circular_pos=(1, 1, 1, 1))
|
|
|
|
|
+ ml_text = "产品信息"
|
|
|
|
|
+ ml_bg = PictureProcessing().get_text_image_advanced(
|
|
|
|
|
+ font=font_1,
|
|
|
|
|
+ text=ml_text,
|
|
|
|
|
+ fill=self.black_color,
|
|
|
|
|
+ return_mode="min_image",
|
|
|
|
|
+ )
|
|
|
|
|
+ _, pp_png_fu = self.image_one_pic(return_orign=True,
|
|
|
|
|
+ goods_art_no=goods_art_no_list[0],
|
|
|
|
|
+ name="俯视",
|
|
|
|
|
+ )
|
|
|
|
|
+ pp_png_fu = pp_png_fu.resize(value=red_bg2.width * 0.4)
|
|
|
|
|
+ _, pp_png_ce = self.image_one_pic(return_orign=True,
|
|
|
|
|
+ goods_art_no=goods_art_no_list[0],
|
|
|
|
|
+ name="侧视",
|
|
|
|
|
+ )
|
|
|
|
|
+ pp_png_ce = pp_png_ce.resize(value=red_bg2.width * 0.4)
|
|
|
|
|
+ red_bg2 = red_bg2.paste_img(top_img=pp_png_fu, value=(40, 50), base="wc")
|
|
|
|
|
+ red_bg2 = red_bg2.paste_img(top_img=pp_png_ce, value=(40, 50), base="ec")
|
|
|
|
|
+ white_bg = white_bg.paste_img(top_img=red_bg2, value=(0, 130), base="nc")
|
|
|
|
|
+ white_bg = white_bg.paste_img(top_img=face, value=(40, 50), base="en")
|
|
|
|
|
+ white_bg = white_bg.paste_img(top_img=ml_bg, value=(40, 50), base="nw")
|
|
|
|
|
+ hidden_bg = hidden_bg.paste_img(top_img=white_bg, value=(0, 0), base="cc")
|
|
|
|
|
+ detailed_images.append(hidden_bg)
|
|
|
|
|
+ bottom = PictureProcessing(r"{}\1.jpg".format(self.root))
|
|
|
|
|
+ detailed_images.append(bottom)
|
|
|
|
|
+ return PictureProcessing(im=self.add_pic(detailed_images))
|
|
|
|
|
+
|
|
|
|
|
+ # 添加注意事项
|
|
|
|
|
+ def deal_pic_5(self):
|
|
|
|
|
+ detailed_images = []
|
|
|
|
|
+ detailed_images.append(PictureProcessing(r"{}\19.jpg".format(self.root)))
|
|
|
|
|
+ detailed_images.append(PictureProcessing(r"{}\20.jpg".format(self.root)))
|
|
|
|
|
+ return PictureProcessing(im=self.add_pic(detailed_images))
|
|
|
|
|
+
|
|
|
|
|
+ def copy_view(self, pp_jpg: PictureProcessing, pp_png: PictureProcessing):
|
|
|
|
|
+ pp_bg_jpg = PictureProcessing("RGB", (1600, 1600), (255, 255, 255))
|
|
|
|
|
+ pp_bg_png = PictureProcessing("RGBA", (1600, 1600), (255, 255, 255, 0))
|
|
|
|
|
+
|
|
|
|
|
+ pp_jpg_1_list = [pp_jpg, pp_jpg]
|
|
|
|
|
+ pp_png_1_list = [pp_png, pp_png]
|
|
|
|
|
+
|
|
|
|
|
+ x, y = 0, 0
|
|
|
|
|
+ for index, pp_jpg in enumerate(pp_jpg_1_list):
|
|
|
|
|
+ pp_bg_jpg = pp_bg_jpg.to_overlay_pic_advance(top_img=pp_jpg,
|
|
|
|
|
+ value=(x, y))
|
|
|
|
|
+ x += pp_jpg.width - 20
|
|
|
|
|
+
|
|
|
|
|
+ x, y = 0, 0
|
|
|
|
|
+ for index, pp_png in enumerate(pp_png_1_list):
|
|
|
|
|
+ pp_bg_png = pp_bg_png.paste_img(top_img=pp_png,
|
|
|
|
|
+ value=(x, y))
|
|
|
|
|
+ x += pp_jpg.width - 20
|
|
|
|
|
+
|
|
|
|
|
+ min_bbox = pp_bg_png.getbbox()
|
|
|
|
|
+ min_bbox = PictureProcessing().expand_bbox(min_bbox, value=50)
|
|
|
|
|
+ pp_bg_jpg = pp_bg_jpg.crop(bbox=min_bbox)
|
|
|
|
|
+ pp_bg_png = pp_bg_png.crop(bbox=min_bbox)
|
|
|
|
|
+ return pp_bg_jpg, pp_bg_png
|