Skip to content

Instantly share code, notes, and snippets.

@ping13
Last active August 29, 2015 14:06
Show Gist options
  • Save ping13/68b2ff14bc7204bfab91 to your computer and use it in GitHub Desktop.
Save ping13/68b2ff14bc7204bfab91 to your computer and use it in GitHub Desktop.
Simple example on how to decode a base64 encoded data string and save it as an image file.
# Simple example on how to decode a base64 encoded data string and save it as an image file.
# Stephan Heuel, Ernst Basler + Partner
import re
# our base64-encoded image
s = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAADLElEQVR4nO2Zv2vbQBTHX0qK6WBMHKw6EOIhdvEi8I8EPByleKr3GLoFCqFbxsyeOnTsZjx5K/gPcKFUZLghkEQpeHGxPVgEGmywWzwU45Z0qE+V5ZMl3Q81gz+gwdJZel+99+7eO23c338Fv4TVBl51fdIqI57xLDzivQENN8N5x9PYYPEIebiSS5q/B3p3acykVUZejPyvHrE/3CqKNm7SKiMllwTrIRKhoeUmhjZelKBNIXexISJU/MLlkVk+DrN8HHr1LOrVs2igd11FzPLxpXP7xzfcyc4sZO/9N/PhxBCvIsgLEAmTEPtMlHi16+l/xumOtJBjyhEllwS4vgMSSsXmEBebQ6yVYlRDi80hNXRm+Tg8vr5jMWEJ30JIGFnzQSvFUEU3cEU3cCW3hwAAKrphMf6JEGNX4WtBJCHllAsV3cAvd6cAAPDxNvTv/FwcwGJu2b3Rq2eZQ8+3ELeEvhh0MABAQUk5jiNiRArxFVqi1gdaXvwtcbLM9xReNBaUFHoW+Q2jaZt7bfCDlOqXQMLMDVJw8lTBzNWvB4hR1HDcP77BThUzy8OkemQO9S3TRPAgUwgih9eQ4ZlMmIV4MW6e8J4aK94ZkbtDdJr7w2oD969UyFQj8OXND/N84qAlpcxn9ghpiGieGU3buH+lQuKgBeMahmgobRq+dYIWVndRMAshntg6WXy5YbWBM9UIRENpZA2ZI20bjrRtswIWseFghbuxAlhujMa1ZRsvz87h8uzc8TovXEKM0x2UTG0u9CN2DxFEJPQquKdfrRRDz5/+BAD36lgmwtaRi0EHH757AQDi498LQoSQfuNt/vvCVBskwjxSUFKooKQgGko75gnB7ToLMopGPJq2IVONUGcnIkL0RoTQWsuaG04hNq5hKbspwj0SVhv40+cMAKxud0UjvPq1Tr0yShEnpJTxxBOv0SwwMdL6Eet2UBDIbHXNHcb+h1uurR4vSG11tVIMdTu/hG9Y0wiiZwcA+WWL1NAiWPeLCaILSylfrAj2D6YykeYRaygpuaTpDVklfiChRfCyCc5KoEJkEtisJZu1kIfGWshDYy3kofEHzq1xNQgcHu4AAAAASUVORK5CYII="
# let's analyse the data URL with regular expressions
pattern = re.compile("^data:.+\/(.+);(.+),(.*)$")
match = pattern.search(s)
# extract extension, coding and actual data
extension = match.group(1)
code = match.group(2)
data = match.group(3)
# write image to a file
with open("image.%s" % extension,"wb") as f:
f.write(data.decode(code))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment