| | import base64 |
| | from io import BytesIO |
| | from PIL import Image |
| | import time |
| |
|
| | |
| | from src.utils import change_background, matte |
| |
|
| | class BackgroundRemover: |
| | def __init__(self): |
| | self.hexmap = { |
| | "Transparent (PNG)": "#000000", |
| | "Black": "#000000", |
| | "White": "#FFFFFF", |
| | "Green": "#22EE22", |
| | "Red": "#EE2222", |
| | "Blue": "#2222EE", |
| | } |
| |
|
| | def process_image(self, image_base64, background_color): |
| | img_input = Image.open(BytesIO(base64.b64decode(image_base64))) |
| | alpha = 0.0 if background_color == "Transparent (PNG)" else 1.0 |
| | img_matte = matte(img_input) |
| | img_output = change_background(img_input, img_matte, background_alpha=alpha, background_hex=self.hexmap[background_color]) |
| | |
| | buffered = BytesIO() |
| | img_output.save(buffered, format="PNG") |
| | img_str = base64.b64encode(buffered.getvalue()).decode("utf-8") |
| | |
| | return img_str |
| |
|
| | model = BackgroundRemover() |