Skip to content Skip to sidebar Skip to footer

How To Store An Image In A Variable

I would like to store the image generated by matplotlib in a variable raw_data to use it as inline image. import os import sys os.environ['MPLCONFIGDIR'] = '/tmp/' import matplotli

Solution 1:

Have you tried cStringIO or an equivalent?

import os
import sys
import matplotlib
import matplotlib.pyplot as plt
import StringIO
import urllib, base64

plt.plot(range(10, 20))
fig = plt.gcf()

imgdata = StringIO.StringIO()
fig.savefig(imgdata, format='png')
imgdata.seek(0)  # rewind the dataprint"Content-type: image/png\n"
uri = 'data:image/png;base64,' + urllib.quote(base64.b64encode(imgdata.buf))
print'<img src = "%s"/>' % uri

Solution 2:

Complete python 3 version, putting together Paul's answer and metaperture's comment.

import matplotlib.pyplot as plt
import io
import urllib, base64

plt.plot(range(10))
fig = plt.gcf()

buf = io.BytesIO()
fig.savefig(buf, format='png')
buf.seek(0)
string = base64.b64encode(buf.read())

uri = 'data:image/png;base64,' + urllib.parse.quote(string)
html = '<img src = "%s"/>' % uri

Post a Comment for "How To Store An Image In A Variable"