Python matplotlib映像到base64而不保存

Python matplotlib映像到base64而不保存,python,matplotlib,base64,pickle,word-cloud,Python,Matplotlib,Base64,Pickle,Word Cloud,我正在用这段代码创建wordcloud图像 wordcloud = WordCloud( background_color='white', random_state=30, width=1500, height=1200, font_path = font_path, prefer_horizontal=1) wordcl

我正在用这段代码创建wordcloud图像

       wordcloud = WordCloud(
            background_color='white',
            random_state=30,
            width=1500,
            height=1200,
            font_path = font_path,
            prefer_horizontal=1)
        wordcloud.generate_from_frequencies(frequencies=d)
我使用matplotlib显示图像,如下所示:

        plt.imshow(wordcloud)
        plt.axis('off')
        plt.show()
我将此作为web应用程序的一部分使用。我想将此图像转换为base64,并作为字符串存储为特定实例的字典键中的值。我看到很多关于如何将图像转换为base64的帖子,但它们似乎涉及到在编码之前将图形保存在本地。我如何做到这一点而不保存任何地方,以便我可以从图像到字符串

这个代码看起来有点像我想要的

import base64
from PIL import Image
from io import BytesIO

with open("image.jpg", "rb") as image_file:
    data = base64.b64encode(image_file.read())

im = Image.open(BytesIO(base64.b64decode(data)))
im.save('image1.png', 'PNG')
如果我这么做,这能完成我的任务吗

data = base64.b64encode(wordcloud)
如果我这么做,这能完成我的任务吗

data = base64.b64encode(wordcloud)
data=base64.b64编码(wordcloud)

不需要。您需要“保存”图像,获取ByTestStream,并将其编码为base64。您不必将图像保存到实际文件中;实际上,您可以使用缓冲区

w = WordCloud().generate('Test')
buffer = io.BytesIO()
w.to_image().save(buffer, 'png')
b64 = base64.b64encode(buffer.getvalue())
并将其转换回显示图像

img = Image.open(io.BytesIO(base64.b64decode(b64)))
plt.imshow(img)
plt.show()