From b75dd7161a3851414cc9f841c84c714c667de509 Mon Sep 17 00:00:00 2001 From: zhouchengrong Date: Thu, 1 Aug 2024 16:58:49 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=20=20=E7=BB=93=E6=9E=9C=E5=9B=BE?= =?UTF-8?q?=E5=AE=BD=E5=BA=A6=E8=87=AA=E9=80=82=E5=BA=94=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/service/design/service.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/service/design/service.py b/app/service/design/service.py index b8c5a8c..211b485 100644 --- a/app/service/design/service.py +++ b/app/service/design/service.py @@ -97,9 +97,9 @@ def process_object(cfg, process_id, total): # uploaded_images.append({'image_obj': layer['pattern_image'], 'image_url': layer['pattern_image_url'], 'image_type': 'pattern_image'}) # if 'mask' in layer.keys() and layer['mask'] is not None and layer['mask_url'] is not None: # uploaded_images.append({'image_obj': layer['mask'], 'image_url': layer['mask_url'], 'image_type': 'mask'}) - + layers, new_size = update_base_size_priority(layers, body_size) # 合成 - items_response['synthesis_url'] = synthesis(layers, body_size, basic_info) + items_response['synthesis_url'] = synthesis(layers, new_size, basic_info) for lay in layers: items_response['layers'].append({ @@ -177,3 +177,17 @@ def upload_images(image_obj): rgba_image[rgba_image[:, :, 0] == 0] = [0, 0, 0, 0] req = oss_upload_image(bucket=bucket_name, object_name=object_name, image_bytes=cv2.imencode('.png', rgba_image)[1]) return image_obj['image_url'] + + +def update_base_size_priority(layers, size): + # 计算新图片的宽度和高度 + max_x = max([layer["position"][1] + layer["image"].size[1] for layer in layers]) + min_x = min([layer["position"][1] for layer in layers]) + new_width = max(size[0], max_x - min_x) + new_height = size[1] + + # 更新图片的坐标 + for layer in layers: + updated_coords = [layer["position"][1] - min_x, layer["position"][0]] + layer['position'] = updated_coords + return layers, (new_width, new_height)