Spaces:
Sleeping
Sleeping
| import base64 | |
| import io | |
| from PIL import Image | |
| def decode_base64_image(base64_string : str): | |
| #"""Convert base64 string to PIL Image""" | |
| # Remove data URL prefix if present (e.g., "data:image/jpeg;base64,") | |
| if ',' in base64_string: | |
| base64_string = base64_string.split(',')[1] | |
| # Decode base64 to bytes | |
| image_bytes = base64.b64decode(base64_string) | |
| # Convert bytes to PIL Image | |
| image = Image.open(io.BytesIO(image_bytes)) | |
| return image | |
| def validate_image_size(image: Image.Image, max_size_mb: int = 5) -> bool: | |
| # """Check if image is within size limit""" | |
| img_byte_arr = io.BytesIO() | |
| image.save(img_byte_arr, format='JPEG') | |
| size_mb = img_byte_arr.tell() / (1024 * 1024) | |
| return size_mb <= max_size_mb | |
| def get_image_mime_type(image: Image.Image) -> str: | |
| format = image.format.lower() if image.format else 'jpeg' | |
| mime_types = { | |
| 'jpeg': 'image/jpeg', | |
| 'jpg': 'image/jpeg', | |
| 'png': 'image/png', | |
| 'webp': 'image/webp' | |
| } | |
| return mime_types.get(format, 'image/jpeg') | |