29 lines
943 B
Python
29 lines
943 B
Python
import io
|
|
|
|
from app.service.utils.oss_client import oss_get_image, oss_upload_image
|
|
|
|
|
|
def model_transpose(image_path):
|
|
bucket = image_path.split("/", 1)[0]
|
|
object_name = image_path.split("/", 1)[1]
|
|
new_object_name = f'{object_name[:object_name.rfind(".")]}.png'
|
|
image = oss_get_image(bucket=bucket, object_name=object_name, data_type="PIL")
|
|
image = image.convert("RGBA")
|
|
data = image.getdata()
|
|
#
|
|
new_data = []
|
|
for item in data:
|
|
if item[0] >= 256 and item[1] >= 256 and item[2] >= 256:
|
|
new_data.append((255, 255, 255, 0))
|
|
else:
|
|
new_data.append(item)
|
|
image.putdata(new_data)
|
|
|
|
image_data = io.BytesIO()
|
|
image.save(image_data, format='PNG')
|
|
image_data.seek(0)
|
|
image_bytes = image_data.read()
|
|
oss_upload_image(bucket=bucket, object_name=new_object_name, image_bytes=image_bytes)
|
|
image_path = f"{bucket}/{new_object_name}"
|
|
return image_path
|