繁体   English   中英

如何以字节为单位转换pyplot图像

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM