Explorar el Código

修改多尺寸报错问题
排序问题

rambo hace 1 mes
padre
commit
8828e25a40

+ 12 - 8
python/service/deal_image.py

@@ -1,4 +1,4 @@
-import os
+import os,re
 
 from  natsort import natsorted,ns
 import shutil
@@ -30,8 +30,10 @@ class DealImage(BaseDealImage):
         return True
     def list_dir(self, path):
         listdir = os.listdir(path)
-        return natsorted(listdir, alg=ns.PATH)
-
+        sort_result = sorted(listdir, key=lambda x: int(re.findall(r'^(\d+)_', x)[0]) if re.findall(r'^(\d+)_', x) else 0)
+        print("listdir   排序排序排序排序排序排序", sort_result)
+        # return natsorted(listdir, alg=ns.PATH)
+        return sort_result
     def get_date_time_original(self, file_path):
         with open(file_path, 'rb') as file_data:
             tags = exifread.process_file(file_data)
@@ -181,7 +183,7 @@ class DealImage(BaseDealImage):
         # 遍历目标文件夹,获取有拍摄信息的图片,并按拍摄时间排序
         files = self.list_dir(image_dir)
         original_photo_list = []  # 原始图片列表
-        for file in files:
+        for file_idx,file in enumerate(files):
             # -----图片清洗
             file_path = image_dir + "/" + file
             if os.path.isdir(file_path):  # 忽略文件夹
@@ -198,12 +200,12 @@ class DealImage(BaseDealImage):
                 if _data:
                     # 能匹配上数据库
                     goods_art_no, image_index, image_deal_mode = _data
-                    print("832 与数据库匹配goods_art_no", file_name, date_time_original, goods_art_no)
+                    print("832 与数据库匹配goods_art_no", file_path,file_name, date_time_original, goods_art_no)
                     original_photo_list.append({"file_path": file_path,
                                                 "file": file,
                                                 "date_time_original": date_time_original,
                                                 "goods_art_no": goods_art_no,
-                                                "image_index": image_index,
+                                                "image_index": file_idx,
                                                 "real_goods_art_no": "",
                                                 "real_goods_number": "",
                                                 })
@@ -221,8 +223,8 @@ class DealImage(BaseDealImage):
             raise UnicornException("没有任何匹配的图片")
             return False, "没有任何匹配的图片"
         # 排序需要基于拍照的文件序号进行处理
-        original_photo_list.sort(
-            key=lambda x: "{}-{}-{}".format(x["goods_art_no"], x["image_index"], x["file"]))
+        # original_photo_list.sort(
+        #     key=lambda x: "{}-{}-{}".format(x["goods_art_no"], x["image_index"], x["file"]))
 
         # print(original_photo_list)
         # 对有拍摄信息的图片进行数据库比对,如有比对上,则移动至货号文件夹,否则移入历史文件夹
@@ -232,9 +234,11 @@ class DealImage(BaseDealImage):
         output_path = "output/{f_name}".format(f_name=time.strftime("%Y-%m-%d", time.localtime(seconds)))
 
         # 遍历每个匹配好的数据进行处理
+        print(f"original_photo_list:",original_photo_list)
         n = 0
         for photo_dict in original_photo_list:
             n += 1
+            print("处理dict:",photo_dict)
             # 进度条
             goods_art_no = photo_dict["goods_art_no"]
             original_image_path = photo_dict["file_path"]

+ 5 - 3
python/service/grenerate_main_image_test.py

@@ -583,10 +583,12 @@ class GeneratePic(object):
                 file_without_suffix = out_path
                 suffix = ""
             # 单独拼接字符串示例
-            new_file_path = f"{file_without_suffix}_{imageSize}.{suffix}"
-            if imageSize < 1600:
+            image_size_int = int(imageSize)
+            image_size_str = str(imageSize)
+            new_file_path = f"{file_without_suffix}_{image_size_str}.{suffix}"
+            if image_size_int < 3000:
                 image_bg = image_bg.resize(
-                    (imageSize, imageSize), resample=settings.RESIZE_IMAGE_MODE
+                    (image_size_int, image_size_int), resample=settings.RESIZE_IMAGE_MODE
                 )
                 if out_pci_mode == ".jpg":
                     self.saver.save_image(

+ 1 - 1
python/sockets/message_handler.py

@@ -433,7 +433,7 @@ async def handlerSend(
                             await manager.send_personal_message(data, websocket)
                             return
                         new_file_name = (
-                            str(itemImg.goods_art_no) + "_" + str(idx) + ".jpg"
+                            str(idx)+"_"+str(itemImg.goods_art_no) + "_" + str(idx) + ".jpg"
                         )
                         if not os.path.exists(
                             image_dir + "/" + os.path.basename(new_file_name)