2011-03-20 128 views
8

我有一个mongoDB数据库,并且恢复了与我的图像相对应的base64数据。在Python中将base64转换为图像

我不知道如何将base64数据转换为图像。

+0

图像如何放入数据库?一旦你知道了,就扭转过程。 – 2011-03-20 13:09:59

+0

图片来自Android设备。 – kschaeffler 2011-03-20 13:11:29

+0

android在base64中转换图像并将其存储到数据库中。我的任务是恢复这些数据并将它们转换为图像 – kschaeffler 2011-03-20 13:12:28

回答

3

如果你想在网页中使用它,你可以把base64编码的图像放入一个HTML文件中。基督徒

See wikipedia for more info

6

你可以试试这个:

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' 用正确的格式。

+0

它不显示图像,但显示一个字符串 – kschaeffler 2011-03-20 14:04:13

20

大厦回答,这里全圆:

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

您的图片文件(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) 

如果扩展名是图像文件扩展名。