Ver Fonte

Merge branch 'dev-python'

rambo há 6 meses atrás
pai
commit
7bb0b92661

+ 7 - 6
python/api.py

@@ -234,12 +234,13 @@ async def handle_detail(request: Request, params: HandlerDetail):
             images = pr.read_all(session, conditions={"goods_art_no": goods_art_no})
             if not images:
                 raise UnicornException("没有可用货号数据")
-            detail_counts = len(params.template_image_order.split(","))
-            image_counts = len(images)
-            # if image_counts < detail_counts and is_only_cutout != 1:
-            #     raise UnicornException(
-            #         f"货号:[{goods_art_no}],实际照片数量:{image_counts}张,小于详情图要求数量:{detail_counts}张"
-            #     )
+            if is_only_cutout != 1:
+                detail_counts = len(params.template_image_order.split(","))
+                image_counts = len(images)
+                if image_counts < detail_counts:
+                    raise UnicornException(
+                        f"货号:[{goods_art_no}],实际照片数量:{image_counts}张,小于详情图要求数量:{detail_counts}张"
+                    )
             image_dir = "{}/data/".format(os.getcwd()).replace("\\", "/")
             check_path(image_dir)
             for itemImg in images:

+ 467 - 0
python/custom_plugins/plugins/detail_template/huilima/detail_huilima6.py

@@ -0,0 +1,467 @@
+"""
+步骤:
+1、整理需要处理的款号图-输出款号图文件夹
+2、整理所有相关的图片作为素材图
+3、按要求进行拼接
+"""
+
+import os
+import time
+from PIL import Image, ImageFont
+import sys
+import settings
+import requests
+import json, base64, io
+
+# 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 = ["全部"]
+template_name = "huilima-4"
+
+
+def download_image_pil(url):
+    yzmdata = requests.get(url)
+    tempIm = io.BytesIO(yzmdata.content)
+    im = Image.open(tempIm)
+    return im
+
+
+# 乐福鞋 详情页
+
+
+class DetailPicGet(DetailBase):
+    need_view = ["俯视", "侧视", "后跟", "鞋底", "内里"]
+    root = r"{}\resources\detail_temp\huilima\4".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,
+        output_queue=None,
+        **kwargs,
+    ):
+
+        super().__init__(
+            goods_no,
+            goods_no_value,
+            out_put_dir,
+            windows=windows,
+            excel_data=excel_data,
+            assigned_page_list=assigned_page_list,
+            output_queue=output_queue,
+        )
+
+        self.template_name = template_name
+        self.root = r"{}\resources\detail_temp\huilima\4".format(os.getcwd())
+        print("run huilima-1 ")
+        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_7,
+            self.deal_pic_4,
+            self.deal_pic_5,
+            self.deal_pic_6,
+        ]
+        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_7())
+        detailed_images.append(self.deal_pic_4())
+        detailed_images.append(self.deal_pic_5())
+        detailed_images.append(self.deal_pic_6())
+        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 = []
+        pp_bg_1 = PictureProcessing(r"{}\1.jpg".format(self.root))
+        font_1 = ImageFont.truetype(r"resources\ttf\puhui\Medium.ttf", 120)
+        text_list = [
+            {"text": "标题", "pos": (89, 224)},
+            {"text": "副标题", "pos": (89, 345)},
+        ]
+        for text_data in text_list:
+            text = self.get_text_value(text_data["text"])
+            if text:
+                _pp = PictureProcessing().get_text_image_advanced(
+                    font=font_1,
+                    text=text,
+                    fill=(0, 0, 0),
+                    return_mode="min_image",
+                )
+                pp_bg_1 = pp_bg_1.paste_img(
+                    top_img=_pp, value=text_data["pos"], base="nw"
+                )
+        detailed_images.append(pp_bg_1)
+
+        # 粘贴组合图
+        goods_art_no_list = list(self.data.keys())
+        pp_jpg, pp_png = self.image_one_pic(
+            return_orign=True,
+            goods_art_no=goods_art_no_list[0],
+            name="组合",
+        )
+        if not pp_jpg:
+            pp_jpg, pp_png = self.image_one_pic(
+                return_orign=True,
+                goods_art_no=goods_art_no_list[0],
+                name="俯视",
+            )
+        pp_jpg: PictureProcessing
+        pp_png: PictureProcessing
+        pp_jpg = pp_jpg.resize(value=1405)
+        pp_png = pp_png.resize(value=1405)
+        pp_bg_2 = PictureProcessing(r"{}\2.jpg".format(self.root))
+        pp_bg_2 = pp_bg_2.to_overlay_pic_advance(
+            top_img=pp_jpg, top_png_img=pp_png, base="cc"
+        )
+
+        detailed_images.append(pp_bg_2)
+        return PictureProcessing(im=self.add_pic(detailed_images))
+
+    # 展示基础信息
+    def deal_pic_2(self):
+        detailed_images = []
+        detailed_images.append(PictureProcessing(r"{}\3.jpg".format(self.root)))
+        # 粘贴侧视图
+        goods_art_no_list = list(self.data.keys())
+
+        pp_jpg = self.get_overlay_pic_from_dict(
+            goods_art_no=goods_art_no_list[0],
+            color_name="侧视",
+            bg_color=self.base_bg_color,
+        )
+        pp_jpg = pp_jpg.resize(value=1098)
+        pp_jpg = pp_jpg.paste_img_invert(
+            top_img=PictureProcessing(
+                "RGB", (1600, pp_jpg.height + 100), self.base_bg_color
+            ),
+            base="cc",
+        )
+        detailed_images.append(pp_jpg)
+        # 粘贴基础信息
+        pp_bg_2 = PictureProcessing(r"{}\5.jpg".format(self.root))
+        font_1 = ImageFont.truetype(r"resources\ttf\puhui\Regular.ttf", 62)
+        text_list = [
+            {"text": "鞋面材质", "pos": (767, 176)},
+            {"text": "内里材质", "pos": (1213, 176)},
+            {"text": "鞋底材质", "pos": (767, 345)},
+            {"text": "鞋垫材质", "pos": (1213, 345)},
+            {"text": "跟高", "pos": (767, 616)},
+            {"text": "前底厚度", "pos": (1196, 616)},
+        ]
+        for text_data in text_list:
+            text = self.get_text_value(text_data["text"])
+            if text:
+                _pp = PictureProcessing().get_text_image_advanced(
+                    font=font_1,
+                    text=text,
+                    fill=(0, 0, 0),
+                    return_mode="min_image",
+                )
+                pp_bg_2 = pp_bg_2.paste_img(
+                    top_img=_pp, value=text_data["pos"], base="nw"
+                )
+        detailed_images.append(pp_bg_2)
+
+        return PictureProcessing(im=self.add_pic(detailed_images))
+
+    # 颜色展示
+    def deal_pic_3(self):
+        detailed_images = []
+        font_1 = ImageFont.truetype(r"resources\ttf\puhui\Medium.ttf", 34)  # 颜色名称
+        color_pic_list_1 = []
+        for goods_art_no_dict in self.goods_no_value["货号资料"]:
+            color_name = goods_art_no_dict["颜色名称"]
+            goods_art_no = goods_art_no_dict["货号"]
+            pp_jpg = self.get_overlay_pic_from_dict(
+                goods_art_no=goods_art_no,
+                color_name="侧视",
+                bg_color=self.base_bg_color,
+            )
+            pp_jpg = pp_jpg.resize(value=390)
+
+            pp_jpg = pp_jpg.paste_img_invert(
+                top_img=PictureProcessing(
+                    "RGBA", (pp_jpg.width, pp_jpg.height + 70), (255, 255, 255, 0)
+                ),
+                base="nw",
+            )
+            text_image = PictureProcessing().get_text_image_advanced(
+                font=font_1,
+                text="{} / COLOR".format(color_name),
+                fill=(0, 0, 0),
+                return_mode="min_image",
+            )
+
+            pp_jpg = pp_jpg.paste_img(top_img=text_image, base="sc", value=(0, 10))
+            color_pic_list_1.append(pp_jpg)
+
+        # 颜色列表进行等分展示
+        all_color_pp = PictureProcessing().horizontal_distribution(
+            color_pic_list_1, bg_width=1114, line_spacing=10, number_per_row=2
+        )
+        all_color_pp = all_color_pp.paste_img_invert(
+            top_img=PictureProcessing(
+                "RGB", (1600, all_color_pp.height + 100), self.base_bg_color
+            ),
+            base="cc",
+            value=(0, 0),
+        )
+        detailed_images.append(all_color_pp)
+        return PictureProcessing(im=self.add_pic(detailed_images))
+
+    def deal_pic_7(self):
+        detailed_images = []
+        temp_bg = PictureProcessing(r"{}\8.jpg".format(self.root))
+        # temp_bg.width
+        font_1 = ImageFont.truetype(r"resources\ttf\puhui\Bold.ttf", 68)  # 颜色名称
+        goods_art_no_list = list(self.data.keys())
+        pp_jpg = self.get_overlay_pic_from_dict(
+            goods_art_no=goods_art_no_list[0],
+            color_name="俯视",
+            bg_color=self.base_bg_color,
+        )
+        # tips = "一只鞋放置在向日葵花园的草地上,鞋子后面有一块石头,石头上还有一只小猫,鞋得前面还有一条小溪,这就要求鞋子的角度、材质、纹理保持不变,背景要求富有创意且有真实感"
+        tips = "The shoes are placed on a light green background.The sun shines from one side, creating a soft shadow effect, and the overall style is fresh and natural, suitable for summer wear. Keep the texture and material of this shoe intact"
+        imageGenerateResult = self.getAiGenerateScenes(image_path=pp_jpg.im, tips=tips)
+        if imageGenerateResult == None:
+            return PictureProcessing(im=self.add_pic(detailed_images))
+        imageGenerateResult = imageGenerateResult.resize(value=temp_bg.width)
+        imageGenerateResult = imageGenerateResult.radius(
+            value=30, circular_pos=(1, 1, 1, 1)
+        )
+        real_bg = PictureProcessing("RGB", (temp_bg.width, 500), self.base_bg_color)
+        text_image = PictureProcessing().get_text_image_advanced(
+            font=font_1,
+            text="场景展示",
+            fill=(0, 0, 0),
+            return_mode="min_image",
+        )
+
+        real_bg = real_bg.paste_img(top_img=text_image, base="cc", value=(0, 100))
+        detailed_images.append(real_bg)
+        detailed_images.append(imageGenerateResult)
+        detailed_images.append(
+            PictureProcessing("RGB", (temp_bg.width, 300), self.base_bg_color)
+        )
+        return PictureProcessing(im=self.add_pic(detailed_images))
+
+    def getAiGenerateScenes(self, image_path: Image, tips: str = ""):
+        byte_io = io.BytesIO()
+        # 将图片保存到BytesIO对象中,格式与原图相同
+        image_path.save(byte_io, format="JPEG")
+        # 获取BytesIO对象中的二进制数据
+        image_data = byte_io.getvalue()
+
+        # 使用base64编码将二进制数据转换成Base64字符串
+        encoded_string = base64.b64encode(image_data).decode("utf-8")
+        url = "https://api.bfl.ai/v1/flux-kontext-max"
+        headers = {
+            "x-key": "70f91c34-e494-4dc2-a7d2-635295136d2d",
+            "Content-Type": "application/json",
+        }
+        payload = json.dumps(
+            {
+                "prompt": tips,
+                "input_image": f"data:image/png;base64,{encoded_string}",
+                "output_format": "jpeg",
+                "aspect_ratio": "9:12",
+                "safety_tolerance": 2,
+            }
+        )
+        try:
+            response = requests.request("POST", url, headers=headers, data=payload)
+            response.raise_for_status()
+            response_json = response.json()
+            polling_url = response_json.get("polling_url")
+            if polling_url == None:
+                return None
+            request_times = 30
+            result_image = None
+            i = 0
+            while i < request_times:
+                response_get = requests.request("GET", polling_url)
+                response_get.raise_for_status()
+                response_get_json = response_get.json()
+                print("获取图片中...", i + 1, "次")
+                print("json数据...", response_get_json)
+                status = response_get_json.get("status")
+                if status != "Ready":
+                    time.sleep(1)
+                    i += 1
+                    continue
+                result_image = response_get_json.get("result").get("sample")
+                if result_image != None:
+                    image_obj = download_image_pil(result_image)
+                    print("图片获取成功...")
+                    return PictureProcessing(im=image_obj)
+                time.sleep(1)
+                i += 1
+
+        except:
+            return None
+
+    # 展示细节图
+    def deal_pic_4(self):
+        detailed_images = []
+        detailed_images.append(PictureProcessing(r"{}\8.jpg".format(self.root)))
+
+        goods_art_no_list = list(self.data.keys())
+        goods_art_no = goods_art_no_list[0]
+        font_1 = ImageFont.truetype(r"resources\ttf\puhui\Medium.ttf", 85)  # 颜色名称
+
+        view_data_list = ["俯视", "俯视", "侧视"]
+        text_list = ["提示1主标题", "提示2主标题", "提示3主标题"]
+        bg_name_list = ["10.jpg", "12.jpg", "14.jpg"]
+        for index, view_name in enumerate(view_data_list):
+            pp_jpg = self.get_overlay_pic_from_dict(
+                goods_art_no=goods_art_no,
+                color_name=view_name,
+                bg_color=(246, 246, 246),
+            )
+            if index == 0:
+                resize_value = 3200
+                paste_base = "cc"
+                paste_value = (0, 200)
+            if index == 1:
+                resize_value = 3200
+                paste_base = "ne"
+                paste_value = (-100, 0)
+            if index == 2:
+                pp_jpg = pp_jpg.transpose(mode="left_right")
+                resize_value = 3513
+                paste_base = "sw"
+                paste_value = (0, 100)
+
+            pp_jpg = pp_jpg.resize(value=resize_value)
+            pp_jpg = pp_jpg.paste_img_invert(
+                top_img=PictureProcessing("RGB", (1500, 1500), (246, 246, 246)),
+                base=paste_base,
+                value=paste_value,
+            )
+            pp_jpg = pp_jpg.radius(value=100)
+            pp_jpg = pp_jpg.paste_img_invert(
+                top_img=PictureProcessing("RGB", (1600, 1600), (255, 255, 255)),
+                base="cc",
+            )
+            detailed_images.append(pp_jpg)
+            # 添加文字
+            text = self.get_text_value(text_list[index])
+            if text:
+                pp_text_bg = PictureProcessing(
+                    r"{}\{}".format(self.root, bg_name_list[index])
+                )
+                _pp = PictureProcessing().get_text_image_advanced(
+                    font=font_1,
+                    text=text,
+                    fill=(0, 0, 0),
+                    return_mode="min_image",
+                )
+                pp_text_bg = pp_text_bg.paste_img(top_img=_pp, value=(73, 0), base="wc")
+                detailed_images.append(pp_text_bg)
+
+        return PictureProcessing(im=self.add_pic(detailed_images))
+
+    # 场景图--产品展示
+    def deal_pic_5(self):
+        detailed_images = []
+        detailed_images.append(PictureProcessing(r"{}\15.jpg".format(self.root)))
+
+        goods_art_no_list = list(self.data.keys())
+        goods_art_no = goods_art_no_list[0]
+
+        _flag = True
+        pp_jpg = self.get_overlay_pic_from_dict(
+            goods_art_no=goods_art_no, color_name="组合1", bg_color=(255, 255, 255)
+        )
+        if pp_jpg:
+            pp_jpg = pp_jpg.paste_img_invert(
+                top_img=PictureProcessing(
+                    "RGB", (1600, pp_jpg.height + 200), (255, 255, 255)
+                ),
+                base="cc",
+            )
+            detailed_images.append(pp_jpg)
+        else:
+            _flag = False
+
+        pp_jpg = self.get_overlay_pic_from_dict(
+            goods_art_no=goods_art_no, color_name="组合2", bg_color=(255, 255, 255)
+        )
+        if pp_jpg:
+            pp_jpg = pp_jpg.paste_img_invert(
+                top_img=PictureProcessing(
+                    "RGB", (1600, pp_jpg.height + 200), (255, 255, 255)
+                ),
+                base="cc",
+            )
+            detailed_images.append(pp_jpg)
+        else:
+            _flag = False
+
+        if not _flag:
+            detailed_images = []
+            detailed_images.append(PictureProcessing(r"{}\15.jpg".format(self.root)))
+            for goods_art_no_dict in self.goods_no_value["货号资料"]:
+                color_name = goods_art_no_dict["颜色名称"]
+                goods_art_no = goods_art_no_dict["货号"]
+                pp_jpg = self.get_overlay_pic_from_dict(
+                    goods_art_no=goods_art_no,
+                    color_name="侧视",
+                    bg_color=self.base_bg_color,
+                )
+                pp_jpg = pp_jpg.resize(value=1404)
+                pp_jpg = pp_jpg.paste_img_invert(
+                    top_img=PictureProcessing(
+                        "RGB", (1600, pp_jpg.height + 200), (255, 255, 255)
+                    ),
+                    base="cc",
+                )
+                detailed_images.append(pp_jpg)
+
+        return PictureProcessing(im=self.add_pic(detailed_images))
+
+    # 添加注意事项
+    def deal_pic_6(self):
+        detailed_images = []
+        detailed_images.append(PictureProcessing(r"{}\20.jpg".format(self.root)))
+        detailed_images.append(PictureProcessing(r"{}\21.jpg".format(self.root)))
+        return PictureProcessing(im=self.add_pic(detailed_images))

+ 1 - 1
python/custom_plugins/plugins/detail_template/xinnuo/detail_xinnuo1.py

@@ -29,7 +29,7 @@ else:
 plugins_name = "详情模板"
 company_name_list = ["信诺"]
 template_name = "xinnuo-1"
-
+# "俯视", "侧视", "后跟", "鞋底", "内里" 组合,组合2
 
 class DetailPicGet(DetailBase):
     need_view = ["俯视", "侧视", "后跟", "鞋底", "内里"]

+ 719 - 0
python/custom_plugins/plugins/detail_template/xinnuo/detail_xinnuo2.py

@@ -0,0 +1,719 @@
+"""
+步骤:
+1、整理需要处理的款号图-输出款号图文件夹
+2、整理所有相关的图片作为素材图
+3、按要求进行拼接
+"""
+
+from ast import mod
+import os
+import settings
+
+from PIL import ImageFont
+import copy
+
+# 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 = ["信诺"]
+template_name = "xinnuo-1"
+# "俯视", "侧视", "后跟", "鞋底", "内里" 组合,组合2
+
+class DetailPicGet(DetailBase):
+    need_view = ["俯视", "侧视", "后跟", "鞋底", "内里","组合","组合2"]
+    root = r"{}\resources\detail_temp\xinnuo\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,
+    ):
+        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\xinnuo\2".format(os.getcwd())
+        print("run xinnuo-1 ")
+        self.base_bg_color = (255, 255, 255)
+        self.base_bg_color_2 = (244, 242, 243)
+        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,
+            self.deal_pic_6,
+            self.deal_pic_7,
+            self.deal_pic_8,
+            self.deal_pic_10,
+            self.deal_pic_11,
+            self.deal_pic_13,
+        ]
+
+        if test:
+            # pp = self.generate_font_list_to_pic()
+            # pp.im.save(r"C:\Users\gymmc\Desktop\细节图示例/字号.png")
+            # for k, v in self.goods_no_value.items():
+            #     print(k, v)
+            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())
+        detailed_images.append(self.deal_pic_6())
+        detailed_images.append(self.deal_pic_7())
+        detailed_images.append(self.deal_pic_8())
+        detailed_images.append(self.deal_pic_10())
+        detailed_images.append(self.deal_pic_11())
+        detailed_images.append(self.deal_pic_13())
+
+
+        img = self.add_pic(detailed_images)
+        img.save(r"{}/{}.jpg".format(self.out_put_dir, self.goods_no, format="JPEG"))
+        img.show()
+
+    # 标题文字展示
+    def deal_pic_1(self):
+        pp_bg = PictureProcessing(r"{}\1.jpg".format(self.root),1600)
+
+        hover = PictureProcessing(r"{}\1hover.png".format(self.root),1600)
+
+        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=pp_bg.width/1.2)
+        pp_png_1 = pp_png_1.resize(value=pp_bg.width /1.2)
+
+        if self.check_shoe_is_right_by_pixel(im=pp_png_1.im)==False:
+            pp_jpg_1 = pp_jpg_1.transpose()
+            pp_png_1 = pp_png_1.transpose()
+
+        pp_png_1_bg = PictureProcessing("RGBA", (pp_jpg_1.width*1.4, pp_jpg_1.width*1.4), (255,255,255,0))
+        pp_png_1_bg = pp_png_1_bg.paste_img(
+            top_img=pp_png_1,base="nc", value=(0, 0)
+        )
+        pp_png_1_bg = pp_png_1_bg.rotate(-45)
+
+        pp_bg = pp_bg.paste_img(
+            top_img=pp_png_1_bg,base="nc", value=(-270, 720)
+        )
+
+        key=0
+        if len(goods_art_no_list)>1:
+            key=1
+
+        pp_jpg_1, pp_png_1 = self.image_one_pic(
+            return_orign=True,
+            goods_art_no=goods_art_no_list[key],
+            name="俯视",
+        )
+        pp_jpg_1 = pp_jpg_1.resize(value=pp_bg.width/1.3)
+        pp_png_1 = pp_png_1.resize(value=pp_bg.width /1.3)
+
+        if self.check_shoe_is_right_by_pixel(im=pp_png_1.im)==True:
+            pp_jpg_1 = pp_jpg_1.transpose()
+            pp_png_1 = pp_png_1.transpose()
+
+        pp_png_1_bg = PictureProcessing("RGBA", (pp_jpg_1.width*1.4, pp_jpg_1.width*1.4), (255,255,255,0))
+        pp_png_1_bg = pp_png_1_bg.paste_img(
+            top_img=pp_png_1,base="nc", value=(0, 0)
+        )
+        pp_png_1_bg = pp_png_1_bg.rotate(45)
+
+        pp_bg = pp_bg.paste_img(
+            top_img=pp_png_1_bg,base="nc", value=(270, 350)
+        )
+
+        pp_bg = pp_bg.paste_img(
+            top_img=hover, value=(129, 1186.5)
+        )
+        return pp_bg
+
+    # 展示鞋头和后跟
+    def deal_pic_2(self):
+        pp_bg = PictureProcessing(r"{}\2.jpg".format(self.root), 1600)
+        font = ImageFont.truetype(
+            r"resources\ttf\puhui\Regular.ttf", 30
+        )  # 设计理念title
+        design_title = self.get_text_value("设计理念标题")
+        design_text = self.get_text_value("设计理念")
+        text_bg = PictureProcessing("RGBA", (pp_bg.width, 200), (255,255,255,0))
+        text_bg = text_bg.get_text_image_advanced(
+            value=(0, 0),
+            font=font,
+            text=design_title,
+            align="center",
+            spacing=20,
+            fill=(68, 41, 34),
+            return_mode="min_image",
+        )
+        pp_bg = pp_bg.paste_img(top_img=text_bg, base="nw", value=(134, 1232))
+
+
+        font = ImageFont.truetype(
+            r"resources\ttf\puhui\Regular.ttf", 24
+        )  # 设计理念
+        text_bg = PictureProcessing("RGBA", (pp_bg.width, 200), (255,255,255,0))
+        text_bg = text_bg.get_text_image_advanced(
+            value=(0, 0),
+            font=font,
+            text=design_text,
+            align="center",
+            spacing=20,
+            fill=(166, 133, 116),
+            return_mode="min_image",
+        )
+        pp_bg = pp_bg.paste_img(top_img=text_bg, base="nw", value=(134, 1284))
+
+        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="组合2",
+        )
+        if pp_jpg_1 == None:
+            pp_jpg_1, pp_png_1 = self.image_one_pic(
+                return_orign=True,
+                goods_art_no=goods_art_no_list[0],
+                name="组合",
+            )
+        if self.check_shoe_is_right_by_pixel(im=pp_png_1.im)==True:
+            pp_jpg_1 = pp_jpg_1.transpose()
+            pp_png_1 = pp_png_1.transpose()
+
+        pp_jpg_1 = pp_jpg_1.resize(value=pp_bg.width*0.8)
+        pp_png_1 = pp_png_1.resize(value=pp_bg.width*0.8)
+        pp_bg = pp_bg.to_overlay_pic_advance(
+            top_img=pp_jpg_1, top_png_img=pp_png_1, base="cc", value=(0, 100)
+        )
+        return pp_bg
+
+    # 展示鞋头放大图
+    def deal_pic_3(self):
+        pp_bg = PictureProcessing(r"{}\3.jpg".format(self.root), 1600)
+        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=480)
+        pp_png_1 = pp_png_1.resize(value=480)
+        # pp_bg = pp_bg.paste_img(top_img=shoe_bg, value=(0, 0), base="nw")
+        pp_bg = pp_bg.to_overlay_pic_advance(
+            mode="pixel",
+            top_img=pp_jpg_1,
+            base="sw",
+            value=(133, 267),
+            top_png_img=pp_png_1,
+        )
+        font = ImageFont.truetype(
+            r"resources\ttf\puhui\Medium.ttf", 24
+        )  # 设计理念
+        font_hei = ImageFont.truetype(r"resources\ttf\simhei.ttf", 24)  # 设计理念
+        xiemian  = self.get_text_value("鞋面")
+        xiedian = self.get_text_value("鞋垫")
+        neili = self.get_text_value("内里")
+        xiedi = self.get_text_value("鞋底")
+
+        all_color_name = []
+
+        for index, goods_art_no in enumerate(goods_art_no_list):
+            color_name = self.goods_no_value["货号资料"][index]["颜色名称"]
+            all_color_name.append(color_name)
+        yanse = ""
+        if len(all_color_name) >= 2:
+            yanse = all_color_name[0] + "," + all_color_name[1]
+
+
+        xiekuan = self.get_text_value("鞋宽")
+        xiechang = self.get_text_value("鞋长")
+        banggao = self.get_text_value("帮高")
+        gengao = self.get_text_value("跟高")
+
+        pp_bg.get_text_image_advanced(
+            value=(246, 378),
+            font=font,
+            text="信诺",
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(69, 40, 34),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+        )
+
+        pp_bg.get_text_image_advanced(
+            value=(555, 378),
+            font=font,
+            text=xiemian,
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(69, 40, 34),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+        )
+        pp_bg.get_text_image_advanced(
+            value=(555, 490),
+            font=font,
+            text=neili,
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(69, 40, 34),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+        )
+        pp_bg.get_text_image_advanced(
+            value=(246, 600),
+            font=font,
+            text=xiedi,
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(69, 40, 34),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+        )
+        pp_bg.get_text_image_advanced(
+            value=(246, 490),
+            font=font,
+            text=xiedian,
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(69, 40, 34),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+        )
+        pp_bg.get_text_image_advanced(
+            value=(555, 600),
+            font=font,
+            text=yanse,
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(69, 40, 34),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+        )
+
+
+        pp_bg.get_text_image_advanced(
+            value=(153, 1142),
+            font=font_hei,
+            text=f"鞋宽\n{xiekuan}",
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(69, 40, 34),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+        )
+        pp_bg.get_text_image_advanced(
+            value=(644, 868),
+            font=font_hei,
+            text=f"帮高\n{banggao}",
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(69, 40, 34),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+        )
+        pp_bg.get_text_image_advanced(
+            value=(644, 948),
+            font=font_hei,
+            text=f"跟高\n{gengao}",
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(69, 40, 34),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+        )
+        pp_bg.get_text_image_advanced(
+            value=(437, 1123),
+            font=font_hei,
+            text=f"鞋长\n{xiechang}",
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(69, 40, 34),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+        )
+        return pp_bg
+
+    # 展示后跟放大图
+    def deal_pic_4(self):
+        detailed_images = []
+        pp_bg = PictureProcessing(r"{}\4.jpg".format(self.root))
+        pp_bg_circle = PictureProcessing(r"{}\bg_circle.png".format(self.root))
+        goods_art_no_list = list(self.data.keys())
+        all_color_name = []
+        bg_color = (254, 249, 245)
+        text_color = (70, 48, 41)
+        font = ImageFont.truetype(r"resources\ttf\puhui\Medium.ttf", 25)
+        goods_art_images = []
+        total_height = 0
+        for index, goods_art_no in enumerate(goods_art_no_list):
+            pp_jpg,pp_png = self.image_one_pic(
+                goods_art_no=goods_art_no,
+                name="侧视",
+                return_orign=True,
+            )
+            if pp_jpg is None:
+                continue
+            pp_jpg = pp_jpg.resize(value=pp_bg.width / 2.5)
+            pp_png = pp_png.resize(value=pp_bg.width / 2.5)
+            color_name = self.goods_no_value["货号资料"][index]["颜色名称"]
+            all_color_name.append(color_name)
+            text_bg = PictureProcessing("RGBA", (pp_jpg.width, 50), (255,255,255,0))
+            text_bg = text_bg.get_text_image_advanced(
+                value=(0, 0),
+                font=font,
+                text="● {}".format(color_name),
+                # text="{}".format(color_name),
+                align="center",
+                # anchor="mm",
+                spacing=5,
+                fill=text_color,
+                return_mode="image",
+                margins=(0, 0, 0, 0),
+            )
+            _bg = PictureProcessing(
+                "RGB",
+                (pp_bg.width / 2, pp_jpg.height+200),
+                bg_color,
+            )
+            pp_bg_circle = pp_bg_circle.resize(value=_bg.width/2)
+            _bg.paste_img(top_img=pp_bg_circle, base="center")
+            if (index+1) == 1:
+                total_height += _bg.height
+            if (index + 1) % 2 != 0 and (index + 1) != 1:
+                total_height += _bg.height
+            _bg = _bg.to_overlay_pic_advance(top_img=pp_jpg,top_png_img=pp_png, base="center")
+            _bg = _bg.paste_img(
+                top_img=text_bg, value=(pp_jpg.width / 2, pp_jpg.height+150)
+            )
+            goods_art_images.append(_bg)
+        rows = 2
+        shoes_bg = PictureProcessing(
+        ).horizontal_distribution(
+            pp_list=goods_art_images,
+            bg_width=pp_bg.width,
+            margins=(0, 0, 0, 0),
+            line_spacing=0,
+            number_per_row=rows,
+        )
+        main_bg = PictureProcessing(
+            "RGB",
+            (pp_bg.width, total_height),
+            bg_color,
+        )
+        main_bg.paste_img(top_img=shoes_bg)
+        detailed_images.append(main_bg)
+        return PictureProcessing(im=self.add_pic(detailed_images))
+
+        return pp_bg
+
+    # 展示后跟细节卡片
+    def deal_pic_5(self):
+        pp_bg = PictureProcessing(r"{}\5.jpg".format(self.root))
+        return pp_bg
+
+    # "心动"设计亮点,展示旋转的侧视图
+    def deal_pic_6(self):
+        pp_bg = PictureProcessing(r"{}\6.jpg".format(self.root))
+        goods_art_no_list = list(self.data.keys())
+        goods_art = goods_art_no_list[0]
+        pp_jpg_1, pp_png_1 = self.image_one_pic(
+            return_orign=True,
+            goods_art_no=goods_art,
+            name="侧视",
+        )
+        if self.check_shoe_is_right_by_pixel(im=pp_png_1.im)==True:
+            pp_jpg_1 = pp_jpg_1.transpose()
+            pp_png_1 = pp_png_1.transpose()
+        pp_jpg_1 = pp_jpg_1.resize(value=pp_bg.width*1.5)
+        pp_png_1 = pp_png_1.resize(value=pp_bg.width*1.5)
+        # pp_bg = pp_bg.paste_img(top_img=shoe_bg, value=(0, 0), base="nw")
+        water = PictureProcessing(r"{}\6water2.png".format(self.root))
+
+        pp_png_1.paste_img(top_img=water, base="cc", value=(0, 0))
+
+        pp_bg = pp_bg.to_overlay_pic_advance(
+            mode="pixel",
+            top_img=pp_jpg_1,
+            base="sw",
+            value=(50, 200),
+            top_png_img=pp_png_1,
+        )
+        return pp_bg
+
+    # 产品展示,帮面等等
+    def deal_pic_7(self):
+        pp_bg = PictureProcessing(r"{}\7.jpg".format(self.root))
+        piao = PictureProcessing(r"{}\7piao.png".format(self.root))
+        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=pp_bg.width/1)
+        pp_png_1 = pp_png_1.resize(value=pp_bg.width /1)
+
+        if self.check_shoe_is_right_by_pixel(im=pp_png_1.im)==False:
+            pp_jpg_1 = pp_jpg_1.transpose()
+            pp_png_1 = pp_png_1.transpose()
+
+        pp_png_1_bg = PictureProcessing("RGBA", (pp_jpg_1.width*1.45, pp_jpg_1.width*1.45), (255,255,255,0))
+        pp_png_1_bg = pp_png_1_bg.paste_img(
+            top_img=pp_png_1,base="nc", value=(0, 0)
+        )
+        pp_png_1_bg = pp_png_1_bg.rotate(-45)
+
+        pp_bg = pp_bg.paste_img(
+            top_img=pp_png_1_bg,base="cc", value=(-200, 340)
+        )
+
+
+
+        pp_bg = pp_bg.paste_img(
+            top_img=piao, value=(50, 814)
+        )
+
+        return pp_bg
+
+
+    # 添加尺码表
+    def deal_pic_8(self):
+        detailed_images = []
+        image_path = r"{}\8.jpg".format(self.root)
+        pp_bg = PictureProcessing(image_path,1600)
+        detailed_images.append(pp_bg)
+        # radius_top = PictureProcessing(
+        #     "RGB", (pp_bg.width * 0.75, 40), (242,235, 227)
+        radius_top = PictureProcessing(
+            "RGBA", (pp_bg.width * 0.75, 40), (255, 249, 243)
+        ).radius(value=30, circular_pos=(1, 1, 0, 0))
+        radius_top_bg = PictureProcessing("RGB", (pp_bg.width, 40), (255, 249, 243))
+        image_list = ["俯视","侧视","后跟"]
+        goods_art_no_list = list(self.data.keys())
+        for i in range(0,len(goods_art_no_list)):
+            for item in image_list:
+                pp_bg_background = PictureProcessing(
+                    "RGB", (pp_bg.width, 800), (255, 249, 243)
+                )
+                pp_bg_radius = PictureProcessing(
+                    "RGB", (pp_bg.width * 0.85, 800), (242,235, 227)
+                )
+                radius_top_bg = radius_top_bg.paste_img(top_img=radius_top, base="cc")
+                detailed_images.append(radius_top_bg)
+                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[i],
+                    name=item,
+                )
+                if item =="俯视":
+                    if self.check_shoe_is_right_by_pixel(im=pp_png_1.im):
+                        pp_jpg_1 = pp_jpg_1.transpose()
+                        pp_png_1 = pp_png_1.transpose()
+                    pp_jpg_1 = pp_jpg_1.resize(value=pp_bg_radius.width / 1.3)
+                    pp_png_1 = pp_png_1.resize(value=pp_bg_radius.width / 1.3)
+                    pp_bg_radius = pp_bg_radius.to_overlay_pic_advance(
+                        top_img=pp_jpg_1, top_png_img=pp_png_1, base="cc", value=(-50, 0)
+                    )
+                    pp_bg_radius = pp_bg_radius.to_overlay_pic_advance(
+                        top_img=pp_jpg_1, top_png_img=pp_png_1, base="cc", value=(50, 60)
+                    )
+                if item == "侧视":
+                    if self.check_shoe_is_right_by_pixel(im=pp_png_1.im):
+                        pp_jpg_1 = pp_jpg_1.transpose()
+                        pp_png_1 = pp_png_1.transpose()
+                    pp_jpg_1 = pp_jpg_1.resize(value=pp_bg_radius.width / 1.3)
+                    pp_png_1 = pp_png_1.resize(value=pp_bg_radius.width / 1.3)
+                    pp_bg_radius = pp_bg_radius.to_overlay_pic_advance(
+                        top_img=pp_jpg_1, top_png_img=pp_png_1, base="cc", value=(60, 0)
+                    )
+                    pp_bg_radius = pp_bg_radius.to_overlay_pic_advance(
+                        top_img=pp_jpg_1, top_png_img=pp_png_1, base="cc", value=(-60, 0)
+                    )
+                if item == "后跟":
+                    pp_jpg_1 = pp_jpg_1.resize(value=pp_bg_radius.width / 2.3)
+                    pp_png_1 = pp_png_1.resize(value=pp_bg_radius.width / 2.3)
+                    pp_jpg_1 = pp_jpg_1.transpose()
+                    pp_png_1 = pp_png_1.transpose()
+                    pp_bg_radius = pp_bg_radius.to_overlay_pic_advance(
+                        top_img=pp_jpg_1, top_png_img=pp_png_1, base="cc", value=(130, 0)
+                    )
+                    pp_jpg_1 = pp_jpg_1.transpose()
+                    pp_png_1 = pp_png_1.transpose()
+                    pp_bg_radius = pp_bg_radius.to_overlay_pic_advance(
+                        top_img=pp_jpg_1, top_png_img=pp_png_1, base="cc", value=(-130, 0)
+                    )
+                pp_bg_radius = pp_bg_radius.radius(value=30, circular_pos=(1, 1, 1, 1))
+                pp_bg_background.paste_img(top_img=pp_bg_radius, base="cc", value=(0, 0))
+                detailed_images.append(pp_bg_background)
+                radius_bottom = PictureProcessing(
+                    "RGB", (pp_bg.width * 0.75, 40), ((255, 249, 243))
+                ).radius(value=30, circular_pos=(0, 0, 1, 1))
+                radius_bottom_bg = PictureProcessing("RGB", (pp_bg.width, 40), (255, 249, 243))
+                radius_bottom_bg = radius_bottom_bg.paste_img(top_img=radius_bottom, base="cc")
+                detailed_images.append(radius_bottom_bg)
+                detailed_images.append(
+                    PictureProcessing("RGB", (pp_bg.width, 50), (255, 249, 243))
+                )
+        return self.pp_pic_subsection(
+            PictureProcessing(im=self.add_pic(detailed_images))
+        )
+
+    def deal_pic_10(self):
+        pp_bg = PictureProcessing(r"{}\10.jpg".format(self.root))
+        return pp_bg
+    def deal_pic_11(self):
+        detailed_images = []
+        image_path = r"{}\11.jpg".format(self.root)
+        pp_bg = PictureProcessing(image_path,1600)
+        goods_art_no_list = list(self.data.keys())
+        text_color = (83, 59, 46)
+        font = ImageFont.truetype(r"resources\ttf\puhui\Medium.ttf", 28)
+        for i in range(0,len(goods_art_no_list)):
+            pp_bg_new = copy.deepcopy(pp_bg)
+
+            color_name = self.goods_no_value["货号资料"][i]["颜色名称"]
+            text_bg = PictureProcessing("RGBA", (100, 50), (255,255,255,0))
+            text_bg = text_bg.get_text_image_advanced(
+                value=(0, 0),
+                font=font,
+                text="● {}".format(color_name),
+                align="left",
+                # anchor="mm",
+                spacing=5,
+                fill=text_color,
+                return_mode="image",
+                margins=(0, 0, 0, 0),
+            )
+            pp_bg_new = pp_bg_new.paste_img(
+                top_img=text_bg, value=(180, 70)
+            )
+
+            pp_jpg_1, pp_png_1 = self.image_one_pic(
+                return_orign=True,
+                goods_art_no=goods_art_no_list[i],
+                name='俯视',
+            )
+            if self.check_shoe_is_right_by_pixel(im=pp_png_1.im):
+                pp_jpg_1 = pp_jpg_1.transpose()
+                pp_png_1 = pp_png_1.transpose()
+            pp_jpg_1 = pp_jpg_1.resize(value=pp_bg_new.width / 1.7)
+            pp_png_1 = pp_png_1.resize(value=pp_bg_new.width / 1.7)
+            pp_bg_new = pp_bg_new.to_overlay_pic_advance(
+                top_img=pp_jpg_1, top_png_img=pp_png_1, base="nc", value=(-50, 70)
+            )
+            pp_bg_new = pp_bg_new.to_overlay_pic_advance(
+                top_img=pp_jpg_1, top_png_img=pp_png_1, base="nc", value=(50, 130)
+            )
+
+            pp_jpg_1, pp_png_1 = self.image_one_pic(
+                return_orign=True,
+                goods_art_no=goods_art_no_list[i],
+                name='侧视',
+            )
+            if self.check_shoe_is_right_by_pixel(im=pp_png_1.im):
+                pp_jpg_1 = pp_jpg_1.transpose()
+                pp_png_1 = pp_png_1.transpose()
+            pp_jpg_1 = pp_jpg_1.resize(value=pp_bg_new.width / 1.7)
+            pp_png_1 = pp_png_1.resize(value=pp_bg_new.width / 1.7)
+            pp_bg_new = pp_bg_new.to_overlay_pic_advance(
+                top_img=pp_jpg_1, top_png_img=pp_png_1, base="nc", value=(0, 525)
+            )
+
+            pp_jpg_1, pp_png_1 = self.image_one_pic(
+                return_orign=True,
+                goods_art_no=goods_art_no_list[i],
+                name='内里',
+            )
+            if self.check_shoe_is_right_by_pixel(im=pp_png_1.im)==True:
+                pp_jpg_1 = pp_jpg_1.transpose()
+                pp_png_1 = pp_png_1.transpose()
+            pp_jpg_1 = pp_jpg_1.resize(value=pp_bg_new.width / 2)
+            pp_png_1 = pp_png_1.resize(value=pp_bg_new.width / 2)
+            pp_bg_new = pp_bg_new.to_overlay_pic_advance(
+                top_img=pp_jpg_1, top_png_img=pp_png_1, base="nc", value=(-pp_bg_new.width/4, 975)
+            )
+
+            pp_jpg_1, pp_png_1 = self.image_one_pic(
+                return_orign=True,
+                goods_art_no=goods_art_no_list[i],
+                name='鞋底',
+            )
+            if self.check_shoe_is_right_by_pixel(im=pp_png_1.im)==False:
+                pp_jpg_1 = pp_jpg_1.transpose()
+                pp_png_1 = pp_png_1.transpose()
+            pp_jpg_1 = pp_jpg_1.resize(value=pp_bg_new.width / 2)
+            pp_png_1 = pp_png_1.resize(value=pp_bg_new.width / 2)
+            pp_bg_new = pp_bg_new.to_overlay_pic_advance(
+                top_img=pp_jpg_1, top_png_img=pp_png_1, base="nc", value=(pp_bg_new.width/4, 975)
+            )
+
+
+
+            detailed_images.append(pp_bg_new)
+            # if i < len(goods_art_no_list) - 1:
+            margin_bottom=PictureProcessing("RGB", (pp_bg.width, 130), (255, 249, 243))
+            detailed_images.append(margin_bottom)
+
+        return self.pp_pic_subsection(
+            PictureProcessing(im=self.add_pic(detailed_images))
+        )
+    def deal_pic_13(self):
+        pp_bg = PictureProcessing(r"{}\13.jpg".format(self.root))
+        return pp_bg
+if __name__ == "__main__":
+
+    d = DetailPicGet(
+        goods_no="test",
+        goods_no_value={},
+        out_put_dir="./output/xinnuo-1",
+        test=True,
+    )
+    d.run_test()

+ 2 - 2
python/detail_template_test.py

@@ -4,7 +4,7 @@ import settings
 settings.is_test_plugins = True
 
 
-from custom_plugins.plugins.detail_template.xinnuo.detail_xinnuo1 import (
+from custom_plugins.plugins.detail_template.huilima.detail_huilima6 import (
     DetailPicGet,
 )
 
@@ -14,7 +14,7 @@ for goods_no, value in data.items():
     d = DetailPicGet(
         goods_no=goods_no,
         goods_no_value=value,
-        out_put_dir=r"C:\Development\project\python\CameraMachine\python\output\xinnuo-1",
+        out_put_dir=r"C:\Development\project\python\CameraMachine\python\output\huilima-6",
         test=True,
     )
 print("生成成功")

BIN
python/resources/detail_temp/xinnuo/2/1.jpg


BIN
python/resources/detail_temp/xinnuo/2/10.jpg


BIN
python/resources/detail_temp/xinnuo/2/11.jpg


BIN
python/resources/detail_temp/xinnuo/2/12.jpg


BIN
python/resources/detail_temp/xinnuo/2/13.jpg


BIN
python/resources/detail_temp/xinnuo/2/1hover.png


BIN
python/resources/detail_temp/xinnuo/2/2.jpg


BIN
python/resources/detail_temp/xinnuo/2/3.jpg


BIN
python/resources/detail_temp/xinnuo/2/4.jpg


BIN
python/resources/detail_temp/xinnuo/2/5.jpg


BIN
python/resources/detail_temp/xinnuo/2/6.jpg


BIN
python/resources/detail_temp/xinnuo/2/6water.png


BIN
python/resources/detail_temp/xinnuo/2/6water2.png


BIN
python/resources/detail_temp/xinnuo/2/7.jpg


BIN
python/resources/detail_temp/xinnuo/2/7piao.png


BIN
python/resources/detail_temp/xinnuo/2/8.jpg


BIN
python/resources/detail_temp/xinnuo/2/9.jpg


BIN
python/resources/detail_temp/xinnuo/2/bg_circle.png