2011-03-20 167 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) 

如果擴展名是圖像文件擴展名。