python 图片和base64互相转换

 

一、从前端接收图片对象,将其转换为base64

第一种:(直接写入图片本地路径)

 

1 image_path = 'C:\\Users\\Administrator\\Desktop\\test2.jpg'
2 with open(image, 'rb') as f:
3    image = f.read()
4    image_base64 = str(base64.b64encode(image), encoding='utf-8')

 

 第二种:(从页面form传入图片)

复制代码
1 image = request.FILES.get('product_img', '')
2 if image:
3    image_byte = image.read()
4    # 将byte转换成str,再转换成base64,去掉首部
5    image_base64 = str(base64.b64encode(image_byte))[2:]
复制代码


二、前端上传图片base64,后台保存图片
复制代码
 1 # 前端上传的base64,存放在django的媒体文件库中
 2 if avatar_url:
 3     b64_data = avatar_url.split(';base64,')[1]
 4     data = base64.b64decode(b64_data)
 5     image_url = os.path.join(MEDIA_ROOT_OLD, 'common/head_img/%s.jpg' % int(time.time()))
 6     with open(image_url, 'wb') as f:
 7         f.write(data)
 8       # 截取media路径,存放在字段中
 9         image_url = image_url.split("project_name")[1].replace('\\', '/')[1:]
10         # user对象
11         user.avatar_url = image_url

posted on 2020-03-20 14:19  枫飞飞  阅读(17383)  评论(0编辑  收藏  举报