2017-12-06 1 views
0
from PIL import Image 
from bson import Binary 

img = Image.open('test.jpg') 
img = Binary(img) 

wirft einen Fehler, der besagt TypeError : data must be an instance of bytesWie speichert man Bilder in MongoDB über Pymongo?

Warum ist das passiert? Und wie löst man das um den img zu MongoDB zu speichern?

+0

Sie können folgende Antwort überprüfen: https://stackoverflow.com/a/11916520/7677986 –

+0

@MoiSyme Versuchte. Funktioniert nicht. Wirft den TypeError. –

Antwort

0

Sie benötigen Bild in Byte-Array zu konvertieren, können Sie dies durch tun, von PIL Import Bild von BSON Import Binary

img = Image.open('test.jpg') 

imgByteArr = io.BytesIO() 
img.save(imgByteArr, format='PNG') 
imgByteArr = imgByteArr.getvalue() 

Sie können versuchen, imgByteArr in Mongo

ODER zu sparen Sie können Bild in Zeichenfolge konvertieren und dann in mongo speichern:

import base64 

with open("test.jpg", "rb") as imageFile: 
    str = base64.b64encode(imageFile.read()) 
    //store str in mongo 

Um wieder Bild

fh = open("test2.jpg", "wb") 
fh.write(str.decode('base64')) 
fh.close() 
Verwandte Themen