Конвертировать base64 в Image в Python - PullRequest
8 голосов
/ 20 марта 2011

У меня есть база данных mongoDB, и я восстанавливаю данные base64, которые соответствуют моему изображению.

Я не знаю, как преобразовать данные base64 в изображение.

Ответы [ 4 ]

20 голосов
/ 21 июля 2011

Опираясь на ответ христиан, здесь полный круг:

import base64

jpgtxt = base64.encodestring(open("in.jpg","rb").read())

f = open("jpg1_b64.txt", "w")
f.write(jpgtxt)
f.close()

# ----
newjpgtxt = open("jpg1_b64.txt","rb").read()

g = open("out.jpg", "w")
g.write(base64.decodestring(newjpgtxt))
g.close()

или так:

jpgtxt = open('in.jpg','rb').read().encode('base64').replace('\n','')

f = open("jpg1_b64.txt", "w")
f.write(jpgtxt)
f.close()

# ----
newjpgtxt = open("jpg1_b64.txt","rb").read()

g = open("out.jpg", "w")
g.write(newjpgtxt.decode('base64'))
g.close()
6 голосов
/ 20 марта 2011

Вы можете попробовать это:

import base64 
png_recovered = base64.decodestring(png_b64text)

'png_b64text' содержит текст из вашего поля изображения mongoDB.

Затем вы просто пишете "png_recovered" в файл:

f = open("temp.png", "w")
f.write(png_recovered)
f.close()

Просто замените 'png' на правильный формат.

3 голосов
/ 20 марта 2011

Если вы хотите использовать это на веб-странице, вы можете просто поместить закодированное в base64 изображение в файл HTML.

См. Википедию для получения дополнительной информации

1 голос
/ 11 июня 2016

Ваш файл изображения (jpeg / png) кодируется в base64, а закодированная строка base64 сохраняется в вашей базе данных mongo.Сначала декодируйте строку base64

import base64
image_binary=base64.decodestring(recovered_string_from_mongo_db)

Теперь image_binary содержит двоичный файл вашего изображения, запишите этот двоичный файл в файл

with open('image.extension','wb') as f:
    f.write(image_binary)

Где расширение - это расширение вашего файла изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...