JPEG Base64 Image String (Python)

vegaseat 1 Tallied Votes 1K Views Share

This short code lets you create a base64 encoded image string, that you can copy and paste into your Python program code to display relatively small embedded images.

For a typical application see:
http://www.daniweb.com/code/snippet393.html

# base64 encoding converts binary data to plain text
# it stores each group of three binary bytes as a group of four characters from the text set:
#     ABCDEFGHIJKLMNOPQRSTUVWXYZ  abcdefghijklmnopqrstuvwxyz  0123456789+/
#     the = character is used for padding at the end of the data stream
# this way an image file can be represented as a string to transmit or
# a short image can be embedded in code as a string, you can insert newlines at
# convenient locations into this embedded string, they will be ignored when
# decoding with for instance   jpg1 = base64.b64decode(jpg1_b64)
# tested with Python24       vegaseat     06oct2005

import base64

# pick a jpeg file you have and want ...
jpgfile = "halloween3.jpg"

# note: binary read "rb" is required!
# this gives a one line string ...
#jpg_text = 'jpg1_b64 = \\\n"""' + base64.b64encode(open(jpgfile,"rb").read()) + '"""'
# another option, inserts newlines about every 76 characters, easier to copy and paste!
jpg_text = 'jpg1_b64 = \\\n"""' + base64.encodestring(open(jpgfile,"rb").read()) + '"""'

print jpg_text

# optionally save to a text file
filename = "jpg1_b64.txt"
try:
    fout = open(filename, "w")
    fout.write(jpg_text)
    fout.close()
except IOError:
    print "File %s could not be saved!" % filename