2011-03-20 22 views
8

Tengo una base de datos mongoDB y recupero los datos de base64 que corresponden a mi Imagen.Convierte base64 en Image en Python

No sé cómo convertir datos de base64 en una imagen.

+0

¿Cómo se colocó la imagen en la base de datos? Una vez que lo sepas, simplemente invierte el proceso. –

+0

la imagen proviene de un dispositivo Android. – kschaeffler

+0

android convierte la imagen en base64 y la almacena en la base de datos. mi tarea es recuperar estos datos y convertirlos a una imagen – kschaeffler

Respuesta

3

Si desea utilizar eso en una página web, puede simplemente poner la imagen codificada en base64 en un archivo HTML.

See wikipedia for more info

6

Puede probar esto:

import base64 
png_recovered = base64.decodestring(png_b64text) 

'png_b64text' contiene el texto de su campo de imagen MongoDB.

A continuación, sólo escribir "png_recovered" a un archivo:

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

basta con sustituir 'png' con el formato correcto.

+0

no me muestra una imagen sino una cadena – kschaeffler

20

Sobre la base de los cristianos a responder, aquí el círculo completo:

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() 

o de esta manera:

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() 
1

Su archivo de imagen (JPEG/PNG) se codifica a base 64 y La cadena base64 codificada se almacena en su mongo db. En primer lugar decodificar la cadena de base 64

import base64 
image_binary=base64.decodestring(recovered_string_from_mongo_db) 

Ahora image_binary contiene su imagen binaria, escribir esta binaria para presentar

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

Dónde extensión es la extensión de archivo de imagen.