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
原文地址:https://www.cnblogs.com/fengff/p/12531474.html