Python matplotlib映像到base64而不保存
我正在用这段代码创建wordcloud图像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(
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()