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.
Developer & Programmer with +15 years professional experience building software.
Seeking WFH, remoting or freelance opportunities.