将图形从pylab转换为base64而不缓存i

2024-05-18 08:35:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在python上绘制一些图像,我想把它们发送到mySQL数据库

为此,我当前正在保存图像,然后打开并将其转换为base64

我想避免保存图像。我该怎么做

我当前保存图像的python代码如下所示:

import matplotlib.pyplot as plt     
plt.figure(1)                       # create figure
plot(t, x, 'r.-')                   # plot x values (red)
plot(t, y, 'g.-')                   # plot y values (green)
plot(t, z, 'b.-')                   # plot z values (blue)
legend(['x','y','z'])               # label the plotted lines
savefig("sample_test.jpeg")   # save figure

打开图像的代码是:

img = open("sample_test.jpeg")
img_b64 = base64.b64encode(img .read())

Tags: sample代码test图像import数据库imgplot
1条回答
网友
1楼 · 发布于 2024-05-18 08:35:51

我想应该是这样的,把图像保存到一个缓冲区,然后再读入

from io import BytesIO
buf = BytesIO()
fig.savefig(buf, format="png")
data = base64.b64encode(buf.getbuffer())

我不擅长数据库,但也许你也想转换成ascii码

data = data.decode("ascii")

相关问题 更多 >