image.py 671 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
"""
Image encoding helpers for the verification app.
"""
import logging


log = logging.getLogger(__name__)


class InvalidImageData(Exception):
    """
    The provided image data could not be decoded.
    """
    pass


def decode_image_data(data):
    """
    Decode base64-encoded image data.

    Arguments:
        data (str): The raw image data, base64-encoded.

    Returns:
        str

    Raises:
        InvalidImageData: The image data could not be decoded.

    """
    try:
        return (data.split(",")[1]).decode("base64")
    except (IndexError, UnicodeEncodeError):
        log.exception("Could not decode image data")
        raise InvalidImageData