CoolFace
Apppublic

Augmentus-robotics/object-analysis-api

sourceHugging Facemitupdated 10mo agoView on Hugging Face
0likes
image_utils.py79 linesDownload Raw Back to utils
1"""2Image utility functions for encoding/decoding and basic operations3"""4import base645import io6import numpy as np7from PIL import Image8 9 10def decode_base64_to_pil(base64_string: str) -> Image.Image:11    """12    Decode a base64 string to a PIL Image13    14    Args:15        base64_string: Base64 encoded image string (with or without data URL prefix)16    17    Returns:18        PIL Image object19    """20    if isinstance(base64_string, str) and base64_string.startswith('data:image'):21        base64_string = base64_string.split(',', 1)[1]22    23    img_bytes = base64.b64decode(base64_string)24    return Image.open(io.BytesIO(img_bytes))25 26 27def pil_to_base64_png(img: Image.Image) -> str:28    """29    Convert PIL Image to base64 PNG string30    31    Args:32        img: PIL Image object33    34    Returns:35        Base64 encoded PNG string (without data URL prefix)36    """37    buf = io.BytesIO()38    img.save(buf, format='PNG')39    buf.seek(0)40    return base64.b64encode(buf.read()).decode('utf-8')41 42 43def ensure_lanczos_resampling():44    """45    Get the correct Lanczos resampling constant for different Pillow versions46    47    Returns:48        Lanczos resampling constant49    """50    try:51        return Image.Resampling.LANCZOS52    except AttributeError:53        return Image.LANCZOS54 55 56def numpy_to_pil(np_array: np.ndarray) -> Image.Image:57    """58    Convert numpy array to PIL Image59    60    Args:61        np_array: Numpy array representation of image62    63    Returns:64        PIL Image object65    """66    return Image.fromarray(np_array)67 68 69def pil_to_numpy(pil_image: Image.Image) -> np.ndarray:70    """71    Convert PIL Image to numpy array72    73    Args:74        pil_image: PIL Image object75    76    Returns:77        Numpy array representation78    """79    return np.array(pil_image)