[英]How to convert pyplot image in bytes
我想以字节为单位转换使用 pyplot 生成的图像并将这些字节写入文件中,以便将我的绘图作为图像保存在我的计算机上。
由于局外人的原因,我不能使用savefig
将绘图直接保存在文件中
通过在线获取的所有信息和其他问题,我得出了这一点:
plt.hist(arg)
plt.show()
bio = BytesIO()
plt.savefig(bio, format="png")
# bio.seek(0)
# print(bio.read()) FIRST print
bio.seek(0)
my_base64_jpgData = base64.b64encode(bio.read())
result["image"] = my_base64_jpgData
在我的代码结束时,我所做的是:
result = handler(input)
file = open("image.png", "wb")
# print(base64.b64decode(result["image"])) SECOND print
file.write(base64.b64decode(result["image"]))
file.close()
我遇到的问题是第一次和第二次打印打印相同的东西,但很明显,如果我将它写入文件,文件全是白色的,因为有一些垃圾信息,实际上这就是两次打印返回的内容:
b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x02\x80\x00\x00\x01\xe0\x08\x06\x00\x00\x005\xd1\xdc\xe4\x00\x00\x009tEXtSoftware\x00Matplotlib version3.3.1, https://matplotlib.org/\xdd\xdd\xfc\xf3\x00\x00\x00\tpHYs\x00\x00\x0fa\x00\x00\x0fa\x01\xa8?\xa7i\x00\x00\x08\xc9IDATx\x9c\xed\xd61\x01\x00 \x0c\xc00\xc0\xbf\xe7\xe1\x02\x8e&\nzv\xcf\xcc,\x00\x002\xce\xef\x00\x00\x00\xde2\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b\x0c \x00@\x8c\x01\x04\x00\x881\x80\x00\x001\x06\x10\x00 \xc6\x00\x02\x00\xc4\x18@\x00\x80\x18\x03\x08\x00\x10c\x00\x01\x00b.&y\x07\xbc\xa7\xa7\xb2b\x00\x00\x00\x00IEND\xaeB`\x82'
如您所见,几乎立即出现0\\x00\\x009tEXtSoftware\\x00Matplotlib version3.3.1, https://matplotlib.org/\\xdd\\xdd\\
我认为我的代码生成的图像image.png
是白色图像.
你知道我该如何解决这个问题吗?
我自己找到了如何解决问题(但我不明白它为什么会起作用),我希望它会在将来对某人有所帮助。
问题是“简单”行plt.show()
,删除此行它将正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.