fix 修复分割后resize时 出现的插值问题,因为时先增加透明通道,然后resize 插值把边缘部分修改为半透明 所以出现缝隙
This commit is contained in:
zhouchengrong
2024-07-18 11:32:58 +08:00
parent ac64cdcc54
commit e0a69b7f63
3 changed files with 26 additions and 41 deletions

View File

@@ -101,26 +101,23 @@ def synthesis(data, size):
if layer['name'] != "body":
test_image = Image.new('RGBA', size, (0, 0, 0, 0))
test_image.paste(layer['image'], (layer['position'][1], layer['position'][0]), layer['image'])
mask_data = np.where(all_mask > 0, 255, 0).astype(np.uint8)
mask_alpha = Image.fromarray(mask_data)
cropped_image = Image.composite(test_image, Image.new("RGBA", test_image.size, (255, 255, 255, 0)), mask_alpha)
base_image.paste(cropped_image, (0, 0), cropped_image)
# mask_data = np.where(all_mask > 0, 255, 0).astype(np.uint8)
# mask_alpha = Image.fromarray(mask_data)
# cropped_image = Image.composite(test_image, Image.new("RGBA", test_image.size, (255, 255, 255, 0)), mask_alpha)
base_image.paste(test_image, (0, 0), test_image)
else:
base_image.paste(layer['image'], (layer['position'][1], layer['position'][0]), layer['image'])
result_image = base_image
with io.BytesIO() as output:
result_image.save(output, format='PNG')
data = output.getvalue()
image_data = io.BytesIO()
result_image.save(image_data, format='PNG')
image_data.seek(0)
# oss upload
image_bytes = image_data.read()
bucket_name = 'aida-results'
bucket_name = 'test'
# bucket_name= "aida-results"
object_name = f'result_{generate_uuid()}.png'
req = oss_upload_image(bucket=bucket_name, object_name=object_name, image_bytes=image_bytes)
return f"{bucket_name}/{object_name}"