将后台接收的base64还原成原图
由于后台接收的图片是base64类型的,如果要对它做处理还需要将图片还原
我将一张jpeg类型的图片转换成base64之后输出发现字符串的开头有下列内容
data:image/jpeg;base64,
这其实是代表这张图片是一张base64编码的jpeg图片,也就是这后面的部分才是图片的内容,在还原图片的时候需要去掉上面那一段内容
以jpeg类型图片为例:
image = image.replace('data:image/jpeg;base64,','')
这样再输出image会发现没有开头那一段了
image = "data:image/jpeg;base64,/ceshiabc"
image = image.replace('data:image/jpeg;base64,', '')
print(image)
输出/ceshiabc
如果输入是jpg,png,jpeg中的一种,而后台接收并不知道是哪一种
可以先判断是哪种
if ('data:image/jpeg;base64,' in image):
image = image.replace('data:image/jpeg;base64,','')
elif ('data:image/jpg;base64,' in image):
image = image.replace('data:image/jpg;base64,','')
elif ('data:image/png;base64,' in image):
image = image.replace('data:image/png;base64,','')
然后就可以用base64.b64decode()函数来还原图片了
下例存成jpg文件
需要导入头文件import base64
imgdata=base64.b64decode(image)
fp=open('imagedata.jpg','wb') # 'wb'表示写二进制文件
fp.write(imgdata)
fp.close()
这样就完成啦
本文介绍如何将后台接收到的base64编码的图片还原为原图。内容涉及识别并去除base64字符串的头部信息,以及使用Python进行不同格式图片的判断与保存。
9215

被折叠的 条评论
为什么被折叠?



