Spaces:
Paused
Paused
| import base64 | |
| import io | |
| import os | |
| import uuid | |
| from PIL import Image | |
| def decode_image(image_base64: str) -> Image.Image: | |
| """Decodes a base64 string to a PIL Image object.""" | |
| image_bytes = base64.b64decode(image_base64) | |
| return Image.open(io.BytesIO(image_bytes)) | |
| def encode_image(image_path: str) -> str: | |
| """Encodes a PIL Image object to a base64 string.""" | |
| with open(image_path, "rb") as image_file: | |
| return base64.b64encode(image_file.read()).decode('utf-8') | |
| def save_image(image: Image.Image, directory: str = "temp_images") -> str: | |
| """Saves a PIL Image object to a temporary file and returns its path.""" | |
| temp_dir = os.path.join(os.path.dirname(__file__), directory) | |
| os.makedirs(temp_dir, exist_ok=True) | |
| filepath = os.path.join(temp_dir, f"{uuid.uuid4().hex}.png") | |
| image.save(filepath) | |
| return filepath | |