100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Python:data:image/png;base64图片编码解码

Python:data:image/png;base64图片编码解码

时间:2024-06-26 05:19:47

相关推荐

Python:data:image/png;base64图片编码解码

编码后的内容,可以在浏览器中直接打开,提示:先去掉回车

data类型的Url大致有下面几种形式

data:,<文本数据>data:text/plain,<文本数据>data:text/html,<HTML代码>data:text/html;base64,<base64编码的HTML代码>data:text/css,<CSS代码>data:text/css;base64,<base64编码的CSS代码>data:text/javascript,<Javascript代码>data:text/javascript;base64,<base64编码的Javascript代码>data:image/gif;base64,base64编码的gif图片数据data:image/png;base64,base64编码的png图片数据data:image/jpeg;base64,base64编码的jpeg图片数据data:image/x-icon;base64,base64编码的icon图片数据

Python3代码

# -*- coding: utf-8 -*-import base64import reimport uuiddef decode_image(src):"""解码图片:param src: 图片编码eg:src="data:image/gif;base64,R0lGODlhMwAxAIAAAAAAAP///yH5BAAAAAAALAAAAAAzADEAAAK8jI+pBr0PowytzotTtbm/DTqQ6C3hGXElcraA9jIr66ozVpM3nseUvYP1UEHF0FUUHkNJxhLZfEJNvol06tzwrgdLbXsFZYmSMPnHLB+zNJFbq15+SOf50+6rG7lKOjwV1ibGdhHYRVYVJ9Wnk2HWtLdIWMSH9lfyODZoZTb4xdnpxQSEF9oyOWIqp6gaI9pI1Qo7BijbFZkoaAtEeiiLeKn72xM7vMZofJy8zJys2UxsCT3kO229LH1tXAAAOw==":return: str 保存到本地的文件名"""# 1、信息提取result = re.search("data:image/(?P<ext>.*?);base64,(?P<data>.*)", src, re.DOTALL)if result:ext = result.groupdict().get("ext")data = result.groupdict().get("data")else:raise Exception("Do not parse!")# 2、base64解码img = base64.urlsafe_b64decode(data)# 3、二进制文件保存filename = "{}.{}".format(uuid.uuid4(), ext)with open(filename, "wb") as f:f.write(img)return filenamedef encode_image(filename):"""编码图片:param filename: str 本地图片文件名:return: str 编码后的字符串eg:src="data:image/gif;base64,R0lGODlhMwAxAIAAAAAAAP///yH5BAAAAAAALAAAAAAzADEAAAK8jI+pBr0PowytzotTtbm/DTqQ6C3hGXElcraA9jIr66ozVpM3nseUvYP1UEHF0FUUHkNJxhLZfEJNvol06tzwrgdLbXsFZYmSMPnHLB+zNJFbq15+SOf50+6rG7lKOjwV1ibGdhHYRVYVJ9Wnk2HWtLdIWMSH9lfyODZoZTb4xdnpxQSEF9oyOWIqp6gaI9pI1Qo7BijbFZkoaAtEeiiLeKn72xM7vMZofJy8zJys2UxsCT3kO229LH1tXAAAOw==""""# 1、文件读取ext = filename.split(".")[-1]with open(filename, "rb") as f:img = f.read()# 2、base64编码data = base64.b64encode(img).decode()# 3、图片编码字符串拼接src = "data:image/{ext};base64,{data}".format(ext=ext, data=data)return srcif __name__ == '__main__':# 下载百度首页logo保存到本地 baidu.png# /img/bd_logo1.png# 编码测试print(encode_image("baidu.png"))# src = "data:image/png;base64,iVBORw0KGgoAAAA..."# 解码测试# print(decode_image(src))

参考

python解码data:image开头的图片地址

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。