我正在用这段代码创建一个字云映像。
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()我使用这个作为一个网络应用程序的一部分。我希望将此映像转换为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)发布于 2021-02-22 23:18:21
,如果我这样做了,它会完成我的任务吗?
data = base64.b64encode(wordcloud)
不是的。您需要“保存”映像,获取字节流,并将其编码为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()https://stackoverflow.com/questions/66324439
复制相似问题