我有以下代码,用于创建从请求到网址的缩略图:
r = requests.get(image_url, stream=True, headers=headers)
size = 500, 500
img = Image.open(r.raw)
thumb = ImageOps.fit(img, size, Image.ANTIALIAS)
此时我想将图像存储在mongo文档中,如下所示:
photo = {
'thumbnail': img,
'source': source,
'tags': tags,
'creationDate': datetime.now(),
}
显然这样做不会有效,所以在我做这件事之前需要应用什么样的转换?
答案 0 :(得分:0)
好的,这是我对此的看法(我不确定它会起作用;有些想法来自here)。
我认为你可以在pymongo库中使用Binary BSON类型来实现你所需要的。尝试以二进制形式加载图像。假设使用PILLOW(pil.image)或
image_file = open('1.bmp', 'rb')
或
image_file = StringIO(open("test.jpg",'rb').read())
然后将其发送到pymongo中的二进制(image_file)类型
Binary_image_file = Binary(image_file) #pymongo libary
然后在mongo中进行正常插入。
阅读。做一个正常的find()。然后从key加载值并将存储的数据转换为image:
image_data = StringIO.StringIO(Stringio_image_file)
image = Image.open(image_data)
我希望有所帮助。 (你也可以选择Aydin base64命题)。
一切顺利。