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')