Browse Source

Merge branch 'dev-python'

rambo 6 tháng trước cách đây
mục cha
commit
761c3fcf49

+ 0 - 0
python/custom_plugins/plugins/detail_template/xinjunlue/__init__.py


+ 216 - 0
python/custom_plugins/plugins/detail_template/xinjunlue/detail_xinjunlue1.py

@@ -0,0 +1,216 @@
+"""
+步骤:
+1、整理需要处理的款号图-输出款号图文件夹
+2、整理所有相关的图片作为素材图
+3、按要求进行拼接
+"""
+
+import os
+from PIL import ImageFont, ImageDraw
+import sys
+import settings
+
+# from PIL import Image, ImageDraw, ImageFont
+
+# 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 = "xinjunlue-1"
+
+
+# 乐福鞋 详情页
+
+
+class DetailPicGet(DetailBase):
+    need_view = ["俯视", "侧视", "后跟", "鞋底", "内里"]
+    root = r"{}\resources\detail_temp\zhudi\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,
+        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\zhudi\1".format(os.getcwd())
+        print(f"run {template_name} ")
+        self.base_bg_color = (255, 255, 255)
+        self.deal_pic_func_list = [
+            self.deal_pic_1,
+        ]
+        if test:
+            self.run_test()
+        else:
+            self.run_all()
+
+    def run_test(self):
+        detailed_images = []
+        detailed_images.append(self.deal_pic_1())
+        img = self.add_pic(detailed_images)
+        if img:
+            self.create_folder(r"{}/{}".format(self.out_put_dir, template_name))
+            # print("保存图片成功", img.show())
+            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 = []
+        base_bg_width = 1200
+        base_limit_width = base_bg_width / 2
+        font = ImageFont.truetype("msyh.ttc", 20)
+        dataList = ["款号", "面料", "内里", "垫脚", "大底", "饰扣", "客户", "日期"]
+        height_total = 0
+        text_list = []
+        line_space = 15
+        for idx, item in enumerate(dataList):
+            info = self.get_text_value(item)
+            if info == None or info == "":
+                continue
+            _pp = PictureProcessing()
+            text = f"{item}: {self.get_text_value(item)}"
+            duanluo = ""
+            sum_width = 0
+            line_count = 0
+            for char in text:
+                text_width = font.getlength(char)
+                sum_width += text_width
+                if sum_width > base_limit_width:  # 超过预设宽度就修改段落 以及当前行数
+                    line_count += 1
+                    sum_width = 0
+                    duanluo += '\n'
+                duanluo += char
+            _pp = _pp.get_text_image_advanced(
+                font=font,
+                text=duanluo,
+                spacing=10,
+                fill=(0, 0, 0),
+                return_mode="min_image_high",
+            )
+            height_total += _pp.height + line_space
+            text_list.append(_pp)
+        pp_bg_jpg = PictureProcessing(
+            "RGB", (base_bg_width, height_total), (255, 255, 255)
+        )
+        goods_art_no_list = list(self.data.keys())
+        current_y = 0
+        for index, text_item in enumerate(text_list):
+            pp_bg_jpg = pp_bg_jpg.paste_img(top_img=text_item, value=(10, current_y))
+            # 更新 Y 坐标为当前项的底部位置
+            current_y += text_item.height + line_space
+        pp_jpg, pp_png = self.image_one_pic(
+            return_orign=True,
+            goods_art_no=goods_art_no_list[0],
+            name="俯视",
+        )
+        pp_png = pp_png.resize(value=base_limit_width)
+        background_size = 0
+        if pp_png.height > pp_bg_jpg.height:
+            background_size = pp_png.height+100
+        else:
+            background_size = pp_bg_jpg.height + 100
+        pp_image_jpg = PictureProcessing(
+            "RGB", (base_bg_width, background_size), (255, 255, 255)
+        )
+        pp_image_jpg.paste_img(top_img=pp_bg_jpg, base="wc", value=(0, 0))
+        pp_image_jpg.paste_img(top_img=pp_png, base="ec", value=(0, 0))
+        detailed_images.append(pp_image_jpg)
+        return PictureProcessing(im=self.add_pic(detailed_images))
+
+    def deal_pic_1(self):
+        detailed_images = []
+        base_bg_width = 1200
+        base_limit_width = base_bg_width / 2
+        font = ImageFont.truetype("msyh.ttc", 20)
+        dataList = ["款号", "面料", "内里", "垫脚", "大底", "饰扣", "客户", "日期"]
+        height_total = 0
+        text_list = []
+        line_space = 15
+        for idx, item in enumerate(dataList):
+            info = self.get_text_value(item)
+            if info == None or info == "":
+                continue
+            _pp = PictureProcessing()
+            text = f"{item}: {self.get_text_value(item)}"
+            duanluo = ""
+            sum_width = 0
+            line_count = 0
+            for char in text:
+                text_width = font.getlength(char)
+                sum_width += text_width
+                if sum_width > base_limit_width:  # 超过预设宽度就修改段落 以及当前行数
+                    line_count += 1
+                    sum_width = 0
+                    duanluo += "\n"
+                duanluo += char
+            _pp = _pp.get_text_image_advanced(
+                font=font,
+                text=duanluo,
+                spacing=10,
+                fill=(0, 0, 0),
+                return_mode="min_image_high",
+            )
+            height_total += _pp.height + line_space
+            text_list.append(_pp)
+        pp_bg_jpg = PictureProcessing(
+            "RGB", (base_bg_width, height_total), (255, 255, 255)
+        )
+        goods_art_no_list = list(self.data.keys())
+        current_y = 0
+        for index, text_item in enumerate(text_list):
+            pp_bg_jpg = pp_bg_jpg.paste_img(top_img=text_item, value=(20, current_y))
+            # 更新 Y 坐标为当前项的底部位置
+            current_y += text_item.height + line_space
+        pp_jpg, pp_png = self.image_one_pic(
+            return_orign=True,
+            goods_art_no=goods_art_no_list[0],
+            name="俯视",
+        )
+        pp_png = pp_png.resize(value=base_limit_width)
+        background_size = 0
+        if pp_png.height > pp_bg_jpg.height:
+            background_size = pp_png.height + 100
+        else:
+            background_size = pp_bg_jpg.height + 100
+        pp_image_jpg = PictureProcessing(
+            "RGB", (base_bg_width, background_size), (255, 255, 255)
+        )
+        pp_image_jpg.paste_img(top_img=pp_bg_jpg, base="wc", value=(0, 0))
+        pp_image_jpg.paste_img(top_img=pp_png, base="ec", value=(0, 0))
+        detailed_images.append(pp_image_jpg)
+        return PictureProcessing(im=self.add_pic(detailed_images))

+ 7 - 7
python/custom_plugins/plugins/detail_template/xinnuo/detail_xinnuo2.py

@@ -286,6 +286,7 @@ class DetailPicGet(DetailBase):
             fill=(69, 40, 34),
             return_mode="image",
             margins=(0, 0, 0, 0),
+            max_len_one_line=6
         )
         pp_bg.get_text_image_advanced(
             value=(555, 490),
@@ -297,6 +298,7 @@ class DetailPicGet(DetailBase):
             fill=(69, 40, 34),
             return_mode="image",
             margins=(0, 0, 0, 0),
+            max_len_one_line=6
         )
         pp_bg.get_text_image_advanced(
             value=(246, 600),
@@ -308,6 +310,7 @@ class DetailPicGet(DetailBase):
             fill=(69, 40, 34),
             return_mode="image",
             margins=(0, 0, 0, 0),
+            max_len_one_line=6
         )
         pp_bg.get_text_image_advanced(
             value=(246, 490),
@@ -319,6 +322,7 @@ class DetailPicGet(DetailBase):
             fill=(69, 40, 34),
             return_mode="image",
             margins=(0, 0, 0, 0),
+            max_len_one_line=6
         )
         pp_bg.get_text_image_advanced(
             value=(555, 600),
@@ -473,9 +477,9 @@ class DetailPicGet(DetailBase):
         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))
+        # 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",
@@ -513,13 +517,9 @@ class DetailPicGet(DetailBase):
         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
 
 

+ 523 - 0
python/custom_plugins/plugins/detail_template/xinnuo/detail_xinnuo3.py

@@ -0,0 +1,523 @@
+"""
+步骤:
+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-3"
+# "俯视", "侧视", "后跟", "鞋底", "内里" 组合,组合2
+
+class DetailPicGet(DetailBase):
+    need_view = ["俯视", "侧视", "后跟", "鞋底", "内里","组合","组合2","组合3","组合4"]
+    root = r"{}\resources\detail_temp\xinnuo\3".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\3".format(os.getcwd())
+        print("run xinnuo-3 ")
+        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,
+        ]
+
+        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())
+        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)
+
+        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.1)
+        pp_png_1 = pp_png_1.resize(value=pp_bg.width /1.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.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(0)
+
+        pp_bg = pp_bg.paste_img(
+            top_img=pp_png_1_bg,base="cc", value=(25, 340)
+        )
+
+        return pp_bg
+    def deal_pic_2(self):
+        pp_bg = PictureProcessing(r"{}\2.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=pp_bg.width*0.45)
+        pp_png_1 = pp_png_1.resize(value=pp_bg.width*0.45)
+        # 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="cc",
+            value=(0, 70),
+            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("鞋底")
+
+        zhangkuan = self.get_text_value("掌宽")
+        gengao = self.get_text_value("跟高")
+
+        pp_bg.get_text_image_advanced(
+            value=(264, 681),
+            font=font,
+            text=xiemian,
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(52, 52, 52),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+            max_len_one_line=6
+        )
+        pp_bg.get_text_image_advanced(
+            value=(611, 681),
+            font=font,
+            text=neili,
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(52, 52, 52),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+            max_len_one_line=6
+        )
+        pp_bg.get_text_image_advanced(
+            value=(611, 760),
+            font=font,
+            text=xiedi,
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(52, 52, 52),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+            max_len_one_line=6
+        )
+        pp_bg.get_text_image_advanced(
+            value=(264, 760),
+            font=font,
+            text=xiedian,
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(52, 52, 52),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+            max_len_one_line=6
+        )
+
+        pp_bg.get_text_image_advanced(
+            value=(212, 409),
+            font=font_hei,
+            text=f"掌宽\n{zhangkuan}",
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(52, 52, 52),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+        )
+
+        pp_bg.get_text_image_advanced(
+            value=(588, 469),
+            font=font_hei,
+            text=f"跟高\n{gengao}",
+            align="left",
+            # anchor="ma",
+            spacing=5,
+            fill=(52, 52, 52),
+            return_mode="image",
+            margins=(0, 0, 0, 0),
+        )
+        return pp_bg
+    def deal_pic_3(self):
+        detailed_images = []
+        pp_bg = PictureProcessing(r"{}\3.jpg".format(self.root))
+        goods_art_no_list = list(self.data.keys())
+        all_color_name = []
+        bg_color = (247, 247, 247)
+        text_color = (52, 52, 52)
+        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,
+            )
+            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+10, pp_jpg.height+100)
+            )
+            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_4(self):
+        pp_bg = PictureProcessing(r"{}\4.jpg".format(self.root))
+        return pp_bg
+    def deal_pic_5(self):
+        detailed_images = []
+        bg_image = PictureProcessing(r"{}\5.jpg".format(self.root))
+        goods_art_no_list = list(self.data.keys())
+
+        pp_jpg1, pp_png1 = self.image_one_pic(goods_art_no=goods_art_no_list[0], name="俯视", return_orign=True)
+        ppg_width=bg_image.width*0.62
+        ppg_height=bg_image.width*0.62*(329/481)
+        pph=ppg_height*2
+        ppw=(pp_png1.width/pp_png1.height)*pph
+        pp_png1=pp_png1.resize(value=bg_image.width*1)
+        pp_jpg1=pp_jpg1.resize(value=bg_image.width*1)
+        pp_png1 = pp_png1.rotate(15)
+        new_pp1_bg=PictureProcessing("RGB",(ppg_width,ppg_height),(255,255,255))
+
+        new_pp1_bg=new_pp1_bg.paste_img(
+            mode="pixel",top_img=pp_png1,base="sw",value=(0, 0)
+        )
+
+        bg_image=bg_image.paste_img(
+            mode="pixel",top_img=new_pp1_bg,base="en",value=(20, 205)
+        )
+
+        pp_jpg1, pp_png1 = self.image_one_pic(goods_art_no=goods_art_no_list[0], name="组合4", return_orign=True)
+        if pp_jpg1 != None or pp_png1 != None:
+            ppg_width=bg_image.width*0.5
+            ppg_height=bg_image.width*0.5*(329/428)
+            pph=ppg_height*2
+            # ppw=(pp_png1.width/pp_png1.height)*pph
+            pp_png1=pp_png1.resize(value=bg_image.width)
+            pp_jpg1=pp_jpg1.resize(value=bg_image.width)
+
+            new_pp1_bg=PictureProcessing("RGB",(ppg_width,ppg_height),(200,200,200))
+
+            new_pp1_bg=new_pp1_bg.paste_img(
+                mode="pixel",top_img=pp_png1,base="cc",value=(0, 0)
+            )
+
+            bg_image=bg_image.paste_img(
+                mode="pixel",top_img=new_pp1_bg,base="nw",value=(20, 205+366)
+            )
+
+        pp_jpg1, pp_png1 = self.image_one_pic(goods_art_no=goods_art_no_list[0], name="俯视", return_orign=True)
+        ppg_width=bg_image.width*0.62
+        ppg_height=bg_image.width*0.62*(329/481)
+        pph=ppg_height*2
+        # ppw=(pp_png1.width/pp_png1.height)*pph
+        pp_png1=pp_png1.resize(value=bg_image.width*1)
+        pp_jpg1=pp_jpg1.resize(value=bg_image.width*1)
+        pp_png1 = pp_png1.rotate(30)
+        new_pp1_bg=PictureProcessing("RGB",(ppg_width,ppg_height),(255,255,255))
+
+        new_pp1_bg=new_pp1_bg.paste_img(
+            mode="pixel",top_img=pp_png1,base="en",value=(-140, 0)
+        )
+
+        bg_image=bg_image.paste_img(
+            mode="pixel",top_img=new_pp1_bg,base="en",value=(20, 205+366*2)
+        )
+
+        pp_jpg1, pp_png1 = self.image_one_pic(goods_art_no=goods_art_no_list[0], name="鞋底", return_orign=True)
+        ppg_width=bg_image.width*0.62
+        ppg_height=bg_image.width*0.62*(329/481)
+        # pph=ppg_height*2
+        # ppw=(pp_png1.width/pp_png1.height)*pph
+        pp_png1=pp_png1.resize(value=bg_image.width*1)
+        pp_jpg1=pp_jpg1.resize(value=bg_image.width*1)
+
+
+        temp_pp1_bg=PictureProcessing("RGB",(ppg_width*2,ppg_width*2),(255,255,255))
+        temp_pp1_bg = temp_pp1_bg.paste_img(
+            mode="pixel",top_img=pp_jpg1,base="wc",value=(0, 0)
+        )
+        temp_pp1_bg = temp_pp1_bg.rotate(-45)
+        # pp_png1 = pp_png1.rotate(-45)
+        new_pp1_bg=PictureProcessing("RGB",(ppg_width,ppg_height),(255,255,255))
+        new_pp1_bg=new_pp1_bg.paste_img(
+            mode="pixel",top_img=temp_pp1_bg,base="wc",value=(-120, 150)
+        )
+
+        # new_pp1_bg = new_pp1_bg.to_overlay_pic_advance(
+        #     top_img=pp_jpg1, top_png_img=pp_png1, base="wc", value=(0, 0)
+        # )
+
+        bg_image=bg_image.paste_img(
+            mode="pixel",top_img=new_pp1_bg,base="nw",value=(20, 205+366*3)
+        )
+
+        font_title = ImageFont.truetype(
+            r"resources\ttf\puhui\Regular.ttf", 31
+        )
+        font_desc = ImageFont.truetype(
+            r"resources\ttf\puhui\Regular.ttf", 20
+        )
+        text_list=[{'name':'细节1标题','align':'left','max_len':16,'default':'牛皮鞋面','value':(69, 281-10)},
+                   {'name':'细节1内容','align':'left','max_len':16,'default':'质感真皮鞋面 柔韧有型','value':(69, 332-10)},
+                   {'name':'细节2标题','align':'right','max_len':16,'default':'可调节式魔术贴','value':(500, 649-10)},
+                   {'name':'细节2内容','align':'right','max_len':16,'default':'穿脱随心方便舒适','value':(562, 700-10)},
+                   {'name':'细节3标题','align':'left','max_len':16,'default':'舒软鞋垫','value':(69, 1016-10)},
+                   {'name':'细节3内容','align':'left','max_len':16,'default':'沙发感鞋垫 契合足型','value':(69, 1066-10)},
+                   {'name':'细节4标题','align':'right','max_len':16,'default':'柔韧鞋底','value':(595, 1384-10)},
+                   {'name':'细节4内容','align':'right','max_len':16,'default':'舒适耐穿 畅快出行','value':(555, 1434-10)}
+                   ]
+
+        for item in text_list:
+            name = self.get_text_value(item['name'])
+            if name== None:
+                name = item['default']
+
+            if '标题' in item['name']:
+                bg_image.get_text_image_advanced(
+                    value=item['value'],
+                    font=font_title,
+                    text=name,
+                    align=item['align'],
+                    # anchor="ma",
+                    spacing=5,
+                    fill=(0, 0, 0),
+                    return_mode="image",
+                    margins=(0, 0, 0, 0),
+                    max_len_one_line=item['max_len']
+                )
+            else:
+                bg_image.get_text_image_advanced(
+                    value=item['value'],
+                    font=font_desc,
+                    text=name,
+                    align=item['align'],
+                    # anchor="ma",
+                    spacing=5,
+                    fill=(187, 187, 187),
+                    return_mode="image",
+                    margins=(0, 0, 0, 0),
+                    max_len_one_line=item['max_len']
+                )
+
+        detailed_images.append(bg_image)
+        return PictureProcessing(im=self.add_pic(detailed_images))
+
+    def deal_pic_6(self):
+        detailed_images = []
+        image_path = r"{}\6.jpg".format(self.root)
+        pp_bg = PictureProcessing(image_path,1600)
+        goods_art_no_list = list(self.data.keys())
+
+        # pp_bg_new = copy.deepcopy(pp_bg)
+
+        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):
+        #     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.7)
+        pp_png_1 = pp_png_1.resize(value=pp_bg.width / 1.7)
+
+        pp_bg = pp_bg.to_overlay_pic_advance(
+            top_img=pp_jpg_1, top_png_img=pp_png_1, base="nc", value=(0, 270)
+        )
+
+        pp_jpg_1, pp_png_1 = self.image_one_pic(
+            return_orign=True,
+            goods_art_no=goods_art_no_list[0],
+            name='组合2',
+        )
+        # 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.width / 1.7)
+        pp_png_1 = pp_png_1.resize(value=pp_bg.width / 1.7)
+
+        pp_bg = pp_bg.to_overlay_pic_advance(
+            top_img=pp_jpg_1, top_png_img=pp_png_1, base="nc", value=(0, 720)
+        )
+
+        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):
+        #     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 / 5)
+        pp_png_1 = pp_png_1.resize(value=pp_bg.width / 5)
+
+        pp_jpg_2 = pp_jpg_1.transpose()
+        pp_png_2 = pp_png_1.transpose()
+
+        pp_bg = pp_bg.to_overlay_pic_advance(
+            top_img=pp_jpg_1, top_png_img=pp_png_1, base="nc", value=(-80, 1150)
+        )
+
+        pp_bg = pp_bg.to_overlay_pic_advance(
+            top_img=pp_jpg_2, top_png_img=pp_png_2, base="nc", value=(80, 1150)
+        )
+
+        pp_jpg_1, pp_png_1 = self.image_one_pic(
+            return_orign=True,
+            goods_art_no=goods_art_no_list[0],
+            name='组合3',
+        )
+        # 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.width / 1.7)
+        pp_png_1 = pp_png_1.resize(value=pp_bg.width / 1.7)
+
+        pp_bg = pp_bg.to_overlay_pic_advance(
+            top_img=pp_jpg_1, top_png_img=pp_png_1, base="nc", value=(0, 1750)
+        )
+
+        detailed_images.append(pp_bg)
+
+        return self.pp_pic_subsection(
+            PictureProcessing(im=self.add_pic(detailed_images))
+        )
+
+
+if __name__ == "__main__":
+
+    d = DetailPicGet(
+        goods_no="test",
+        goods_no_value={},
+        out_put_dir="./output/xinnuo-3",
+        test=True,
+    )
+    d.run_test()

+ 2 - 1
python/custom_plugins/plugins_mode/detail_generate_base.py

@@ -361,6 +361,8 @@ class DetailBase(object):
         # 找任意一个有组合图的货号
         for goods_art_no_dict in self.goods_no_value["货号资料"]:
             _goods_art_no = goods_art_no_dict["货号"]
+            if _goods_art_no !=goods_art_no:
+                continue
             _view_name_list = set([x.split("-")[0] for x in goods_art_no_dict["pics"]])
             for _view_name in _view_name_list:
                 if "组合" not in _view_name:
@@ -371,7 +373,6 @@ class DetailBase(object):
                      "real_view_name": "组合1" if _view_name == "组合" else _view_name
                      }
                 )
-
         if len(data) <= view_index:
             return goods_art_no, "无法匹配"
         else:

+ 3 - 2
python/custom_plugins/plugins_mode/pic_deal.py

@@ -323,7 +323,7 @@ class PictureProcessing(object):
 
     def get_text_image_advanced(self, value=(0, 0), font="", text="", anchor=None, align="left", spacing=0,
                                 fill=(0, 0, 0),
-                                return_mode="image", margins=(0, 0, 0, 0)):
+                                return_mode="image", margins=(0, 0, 0, 0),max_len_one_line=0):
         """
         {
             "command": "add_text",
@@ -355,7 +355,8 @@ class PictureProcessing(object):
         # 定义字体,你需要有一个.ttf字体文件
         spacing = 4 if not spacing else spacing
         align = "left" if not align else align  # left, center 或 right
-
+        if max_len_one_line > 0:
+            text = text[:max_len_one_line]
         _, _, text_width, text_height = draw_1.textbbox((0, 0), text, font=font)
         value = (int(value[0]), int(value[1]))
 

+ 74 - 39
python/detail_template_test.json

@@ -3,51 +3,86 @@
         "款号": "AC5120913",
         "货号资料": [
             {
-                "货号": "AC51016112",
-                "文件夹名称": "AC51016112",
-                "编号": "AC51016112",
-                "颜色名称": "色",
+                "货号": "A333",
+                "文件夹名称": "A333",
+                "编号": "A333",
+                "颜色名称": "酒红色",
                 "pics": {
-                    "俯视-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(1)_俯视_抠图.png",
-                    "俯视-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(1)_俯视_阴影.png",
-                    "侧视-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(2)_侧视_抠图.png",
-                    "侧视-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(2)_侧视_阴影.png",
-                    "后跟-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(3)_后跟_抠图.png",
-                    "后跟-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(3)_后跟_阴影.png",
-                    "鞋底-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(4)_鞋底_抠图.png",
-                    "鞋底-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(4)_鞋底_阴影.png",
-                    "内里-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(5)_内里_抠图.png",
-                    "内里-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(5)_内里_阴影.png",
-                    "组合-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(6)_组合_抠图.png",
-                    "组合-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(6)_组合_阴影.png",
-                    "组合2-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(7)_组合2_抠图.png",
-                    "组合2-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(7)_组合2_阴影.png",
-                    "组合3-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(8)_组合3_抠图.png",
-                    "组合3-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(8)_组合3_阴影.png"
+                    "俯视-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/俯视_抠图.png",
+                    "俯视-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/俯视_阴影.jpg",
+                    "侧视-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/侧视_抠图.png",
+                    "侧视-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/侧视_阴影.jpg",
+                    "后跟-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/后跟_抠图.png",
+                    "后跟-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/后跟_阴影.jpg",
+                    "鞋底-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/鞋底_抠图.png",
+                    "鞋底-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/鞋底_阴影.jpg",
+                    "内里-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/内里_抠图.png",
+                    "内里-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/内里_阴影.jpg",
+                    "组合-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合_抠图.png",
+                    "组合-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合_阴影.jpg",
+                    "组合2-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合2_抠图.png",
+                    "组合2-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合2_阴影.jpg",
+                    "组合3-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合3_抠图.png",
+                    "组合3-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合3_阴影.jpg",
+                    "组合4-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合4_抠图.png",
+                    "组合4-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合4_阴影.jpg"
                 },
                 "800x800": [
-                    "C:/Users/15001/Desktop/测试文件夹/AC51016112/800x800/AC51016112(1).jpg",
-                    "C:/Users/15001/Desktop/测试文件夹/AC51016112/800x800/AC51016112(2).jpg",
-                    "C:/Users/15001/Desktop/测试文件夹/AC51016112/800x800/AC51016112(3).jpg",
-                    "C:/Users/15001/Desktop/测试文件夹/AC51016112/800x800/AC51016112(4).jpg",
-                    "C:/Users/15001/Desktop/测试文件夹/AC51016112/800x800/AC51016112(5).jpg"
+                    "C:/Zhihuiyin/2025-06-162/A333/800x800/A333(1).jpg",
+                    "C:/Zhihuiyin/2025-06-162/A333/800x800/A333(2).jpg",
+                    "C:/Zhihuiyin/2025-06-162/A333/800x800/A333(3).jpg",
+                    "C:/Zhihuiyin/2025-06-162/A333/800x800/A333(4).jpg",
+                    "C:/Zhihuiyin/2025-06-162/A333/800x800/A333(5).jpg"
+                ]
+            },
+            {
+                "货号": "A444",
+                "文件夹名称": "A444",
+                "编号": "A444",
+                "颜色名称": "米白色",
+                "pics": {
+                    "俯视-抠图": "C:/Zhihuiyin/2025-06-162/A444/阴影图处理/俯视_抠图.png",
+                    "俯视-阴影": "C:/Zhihuiyin/2025-06-162/A444/阴影图处理/俯视_阴影.jpg",
+                    "侧视-抠图": "C:/Zhihuiyin/2025-06-162/A444/阴影图处理/侧视_抠图.png",
+                    "侧视-阴影": "C:/Zhihuiyin/2025-06-162/A444/阴影图处理/侧视_阴影.jpg",
+                    "后跟-抠图": "C:/Zhihuiyin/2025-06-162/A444/阴影图处理/后跟_抠图.png",
+                    "后跟-阴影": "C:/Zhihuiyin/2025-06-162/A444/阴影图处理/后跟_阴影.jpg",
+                    "鞋底-抠图": "C:/Zhihuiyin/2025-06-162/A444/阴影图处理/鞋底_抠图.png",
+                    "鞋底-阴影": "C:/Zhihuiyin/2025-06-162/A444/阴影图处理/鞋底_阴影.jpg",
+                    "内里-抠图": "C:/Zhihuiyin/2025-06-162/A444/阴影图处理/内里_抠图.png",
+                    "内里-阴影": "C:/Zhihuiyin/2025-06-162/A444/阴影图处理/内里_阴影.jpg",
+                    "组合-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合_抠图.png",
+                    "组合-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合_阴影.jpg",
+                    "组合2-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合2_抠图.png",
+                    "组合2-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合2_阴影.jpg",
+                    "组合3-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合3_抠图.png",
+                    "组合3-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合3_阴影.jpg",
+                    "组合4-抠图": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合4_抠图.png",
+                    "组合4-阴影": "C:/Zhihuiyin/2025-06-162/A333/阴影图处理/组合4_阴影.jpg"
+                },
+                "800x800": [
+                    "C:/Zhihuiyin/2025-06-162/A444/800x800/A444(1).jpg",
+                    "C:/Zhihuiyin/2025-06-162/A444/800x800/A444(2).jpg",
+                    "C:/Zhihuiyin/2025-06-162/A444/800x800/A444(3).jpg",
+                    "C:/Zhihuiyin/2025-06-162/A444/800x800/A444(4).jpg",
+                    "C:/Zhihuiyin/2025-06-162/A444/800x800/A444(5).jpg"
                 ]
             }
         ],
-        "文件夹名称": "AC51016112",
-        "标题": "复古勃肯",
-        "副标题": "百搭 | 舒适 | 柔软 | 耐穿 | 复古 | 高级",
-        "设计理念-标题": "让勃肯鞋陪你city一下",
-        "设计理念": "以独特的复古风格,让你在繁华都市中独树一帜/n独特的软木颗粒中底设计,提供出色的缓冲效果/n轻松打造出慵懒而又不失格调的复古风/n后跟部分可灵活调整,让你在不同场合都能找到/n最舒适的穿着方式",
-        "鞋面": "网布+合成革",
-        "鞋底": "橡胶底",
-        "内里": "网布",
+        "文件夹名称": "AN5021361",
+        "掌宽": "9.7cm",
+        "跟高": "3.6cm",
+        "鞋面": "牛皮革",
         "鞋垫": "合成革",
-        "细节标题-1": "可调节饰扣",
-        "细节副标题-1": "三孔调节饰扣,搭配不同脚型",
-        "细节标题-2": "细腻反绒鞋面",
-        "细节副标题-2": "鞋面采用触感舒适的牛反绒/n彰显复古慵懒属性/n轻松驾驭不同穿搭",
-        "细节标题-3": "后跟下踩设计",
-        "细节副标题-3": "单鞋&拖鞋 随时切换"
+        "内里": "合成革",
+        "鞋底": "聚氨酯底",
+        "细节1标题": "牛皮鞋面",
+        "细节1内容": "质感真皮鞋面 柔韧有型",
+        "细节2标题": "可调节式魔术贴",
+        "细节2内容": "穿脱随心方便舒适",
+        "细节3标题": "舒软鞋垫",
+        "细节3内容": "沙发感鞋垫 契合足型",
+        "细节4标题": "柔韧鞋底",
+        "细节4内容": "舒适耐穿 畅快出行"
     }
 }

+ 4 - 4
python/detail_template_test.py

@@ -4,17 +4,17 @@ import settings
 settings.is_test_plugins = True
 
 
-from custom_plugins.plugins.detail_template.huilima.detail_huilima6 import (
+from custom_plugins.plugins.detail_template.xinnuo.detail_xinnuo3 import (
     DetailPicGet,
 )
 
 
-data = json.load(open("detail_template_test_xinnuo.json", mode="r", encoding="utf-8"))
+data = json.load(open("detail_template_test_xinjunlue.json", mode="r", encoding="utf-8"))
 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\huilima-6",
+        out_put_dir=r"C:\Development\project\python\CameraMachine\python\output\xinnuo-3",
         test=True,
     )
-print("生成成功")
+print("生成成功")

+ 74 - 0
python/detail_template_test_xinjunlue.json

@@ -0,0 +1,74 @@
+{
+    "AC5120913": {
+        "款号": "E305-01003",
+        "货号资料": [
+            {
+                "货号": "AC51016112",
+                "文件夹名称": "AC51016112",
+                "编号": "AC51016112",
+                "颜色名称": "枪色",
+                "pics": {
+                    "俯视-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(1)_俯视_抠图.png",
+                    "俯视-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(1)_俯视_阴影.png",
+                    "侧视-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(2)_侧视_抠图.png",
+                    "侧视-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(2)_侧视_阴影.png",
+                    "后跟-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(3)_后跟_抠图.png",
+                    "后跟-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(3)_后跟_阴影.png",
+                    "鞋底-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(4)_鞋底_抠图.png",
+                    "鞋底-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(4)_鞋底_阴影.png",
+                    "内里-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(5)_内里_抠图.png",
+                    "内里-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(5)_内里_阴影.png",
+                    "组合-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(6)_组合_抠图.png",
+                    "组合-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(6)_组合_阴影.png",
+                    "组合2-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(7)_组合2_抠图.png",
+                    "组合2-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(7)_组合2_阴影.png",
+                    "组合3-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(8)_组合3_抠图.png",
+                    "组合3-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(8)_组合3_阴影.png"
+                },
+                "800x800": [
+                    "C:/Users/15001/Desktop/测试文件夹/AC51016112/800x800/AC51016112(1).jpg",
+                    "C:/Users/15001/Desktop/测试文件夹/AC51016112/800x800/AC51016112(2).jpg",
+                    "C:/Users/15001/Desktop/测试文件夹/AC51016112/800x800/AC51016112(3).jpg",
+                    "C:/Users/15001/Desktop/测试文件夹/AC51016112/800x800/AC51016112(4).jpg",
+                    "C:/Users/15001/Desktop/测试文件夹/AC51016112/800x800/AC51016112(5).jpg"
+                ]
+            },
+            {
+                "货号": "AC51209131",
+                "文件夹名称": "AC51209131",
+                "编号": "AC51209131",
+                "颜色名称": "白色",
+                "pics": {
+                    "俯视-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(1)_俯视_抠图.png",
+                    "俯视-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(1)_俯视_阴影.png",
+                    "侧视-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(2)_侧视_抠图.png",
+                    "侧视-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(2)_侧视_阴影.png",
+                    "后跟-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(3)_后跟_抠图.png",
+                    "后跟-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(3)_后跟_阴影.png",
+                    "鞋底-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(4)_鞋底_抠图.png",
+                    "鞋底-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(4)_鞋底_阴影.png",
+                    "内里-抠图": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(5)_内里_抠图.png",
+                    "内里-阴影": "C:/Users/15001/Desktop/2025-06-11/A333/阴影图处理/A333(5)_内里_阴影.png"
+                },
+                "800x800": [
+                    "C:/Users/15001/Desktop/测试文件夹/AC51209131/800x800/AC51209131(1).jpg",
+                    "C:/Users/15001/Desktop/测试文件夹/AC51209131/800x800/AC51209131(2).jpg",
+                    "C:/Users/15001/Desktop/测试文件夹/AC51209131/800x800/AC51209131(3).jpg",
+                    "C:/Users/15001/Desktop/测试文件夹/AC51209131/800x800/AC51209131(4).jpg",
+                    "C:/Users/15001/Desktop/测试文件夹/AC51209131/800x800/AC51209131(5).jpg"
+                ]
+            }
+        ],
+        "文件夹名称": "AC51016112",
+        "图片路径": "休闲运动",
+        "楦号": "E305S",
+        "内里": "RL203黑色羊皮里+后套里:ZP3002黑色猪皮反面",
+        "面料": "RB3721杏色网布+RJ262杏色长毛牛京+RN1982白色荔枝纹皮+RN2586黑色牛皮",
+        "垫脚": "RB569黑色双面超纤(成型垫脚)",
+        "大底": "黑色大底+灰色EVA+白色EVA",
+        "饰扣": "黑色松紧+金色日子扣",
+        "客户": "strategy",
+        "码数": "",
+        "日期": "2025-6-12"
+    }
+}

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


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


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


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


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


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