Python处理base64编码图片

处理图片时通常会遇到base64编码的字符串,如何将base64编码的字符串转换成图像并存储:

1
2
3
4
5
6
import base64
base64_image_str = 'very long base64 encoded image string'
with open('some_image.jpg', 'wb') as f:
f.write(base64.b64decode(base64_image_str))

其中base64.b64decode()函数用来将base64编码的字符串解码,然后以二进制模式wb写入文件即可。

另外需要注意的是:
网页上渲染的base64编码的图片会带有类似这样的字符data:image/jpeg;base64,,其指定的是编码类型及图片格式,如需转成图片需要去掉前面这些字符,只要后面base64编码的数据部分:

1
2
3
base64_image_str = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDA......."
base64_image_str = base64_image_str[base64_image_str.find(",")+1:]

如果,需要将图片转成base64编码的字符串,只需base64.b64encode()函数,以二进制模式rb读取图像即可:

1
2
3
4
import base64
with open('some_image.jpg', 'rb') as f:
base64_image_str = base64.b64encode(f.read())

大师兄 wechat
欢迎关注我的微信公众号:Python大师兄