Base64 encoding image files using Python

In an earlier entry I mentioned that I was building a little app to display a bunch of static information. Sometimes I find it immensely useful to embed all resources into a single data-file. Not only does it make handling the data simpler but also retrieving it over the internet.

My data has a bunch of text and a few images as well to go with it. I wrote the code below (in python) to automate embedding of image data directly in with the other text that I will be serving.

@staticmethod
def encode_image_as_base64( image_path, base_path ):
    """ 
        Loads an image from path and returns it as base64 encoded string
    """

    # The image path can be a URI with a query string.
    # Remove any query string elements, basically everything following
    # a question (?) mark
    qs_split = image_path.split("?")
    image_path = qs_split[0]

    file_name = os.path.join( base_path, image_path)
    file_name = urllib.unquote(file_name)

    print "Encoding image: "+file_name

    encoded_string = ""
    with open(file_name, "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read())

    return encoded_string

It may not compress all that well but it makes data handling clean and simple.



Software Developer
For hire


Developer & Programmer with +15 years professional experience building software.


Seeking WFH, remoting or freelance opportunities.