python通过base64读取图片

14 篇文章 1 订阅
1 篇文章 0 订阅

读取图片转换为base64

直接代码如下:

def test():
	# 读取图片
	image_base64 = None
	img_save_path = os.path.join(os.environ['BASE_PATH'], 'frontend', 'static', 'media', 'work_ticket', 'Photo.jpg')
	with open(img_save_path, 'rb') as f:
		ls_f = base64.b64encode(f.read())
		image_base64 = str(base64.b64encode(ls_f), encoding='utf-8')
		f.close()

读取本地图片为base64基本就是上面样式了,换个路径就可以用的。

base64图片传递到前端展示

<img src="data:image/jpg;base64,这里是base64的编码"/>

第一个最后得到的 image_base64 这个变量就是这里的base64 编码。值得注意的是,因为在前端展示的时候,前面要加一段data:image/jpg;base64, 所以要注意base64编码,有的是直接包含这一段的,要在后端做处理,把后面的base64编码提取出来。

存储到mongoDB

mongo中有一个gridFS可以用来存储图片这些大文件。

from pymongo import MongoClient,monitoring
import base64
import gridfs

# host: mongo数据库所在服务器地址
# port: mongo数据库端口
# db_name: 数据库的名称
client = MongoClient(host,port)
database = client.get_database(db_name)

ret = None
try:
    fs = gridfs.GridFS(database, collection='fs')
    ret = fs.put(base64.b64decode(base), contentType='image/jpeg', filename='Photo.jpg')
    print(ret)
except Exception as e:
    print('base64Toimg failed: %s' % e)
finally:
    print(ret)

存储成功后,返回的ret是mongo的默认id_id字段值。

@快乐是一切

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值