我正在尝试在 Django 中发送 JSON 响应,其中包括来自 python 的 matplotlib 的 .png 图的 base64 字符串表示形式和一些关于它的文本信息。我在尝试将图像转换为 base64 字符串时遇到了一些问题:
# Initialize objects imma need
img_buffer = StringIO.StringIO()
out = StringIO.StringIO()
canvas = FigureCanvasAgg(fig)
# Print and convert
canvas.print_png(img_buffer)
base64.encode(img_buffer, out)
img_str = out.getvalue()
# Make dictionary
logger.info(img_str)
resp_d = {'image': img_str, 'nodes': str(pxs)}
return HttpResponse(json.dumps(resp_d), content_type='application/json')
注意: fig 是我的 matplotlib Figure()
,我已将其直接打印到响应中并显示,所以我知道它正在正确创建。
不幸的是,我没有得到图像,并且记录器显示 img_str 是空的。我环顾四周并尝试了一些事情,包括使用fig.savefig(img_buffer)
而不是canvas.print_png(img_buffer)
,但没有任何成功。我完全被难住了......任何想法可能会发生什么?非常感谢!