是否可以从BytesIO缓冲区生成html中的功能图像标记?我想沿着这些方向做点什么:
import matplotlib
matplotlib.use('Agg')
import pylab
import Image
import io
temp_data = {'x':[1,2,3],'y':[2,4,5]}
pylab.plot(temp_data['x'], temp_data['y'])
img_buffer = io.BytesIO()
pylab.savefig(img_buffer, format = 'png')
img_buffer.seek(0)
img_tag = "<img src='data:image/png;base64,'" + img_buffer.getvalue() + "</img>"
可能需要以某种方式重新格式化缓冲区的值,或者更改'src'数据的内容。谢谢。
答案 0 :(得分:6)
问题解决了:
在上面代码的末尾,执行此操作:
import base64
img_tag = "<img src='data:image/png;base64," + base64.b64encode(img_buffer.getvalue()) + "'/>"
答案 1 :(得分:0)
如果您正在使用Flask
,则可以返回图像的UTF-8
格式并进行播放。
figfile = BytesIO()
plt.savefig(figfile, format='png')
plt.clf() # this will clear the image
figfile.seek(0)
figdata_png = base64.b64encode(figfile.getvalue())
return figdata_png.decode('UTF-8')
请记住在<img/>
标签中提及它。这是在Flask
中实现的。