Конвертируйте число из pylab в base64 без кеширования - PullRequest
0 голосов
/ 28 ноября 2018

Я строю некоторые изображения на 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())

1 Ответ

0 голосов
/ 28 ноября 2018

Я думаю, что это должно быть что-то вроде этого, где вы сохраняете изображение в буфер и читаете его снова.

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

Я не специалист по базам данных, но, возможно, вы также захотите преобразовать в ascii,

data = data.decode("ascii")
...