参考:https://blog.csdn.net/Good_Luck_Kevin2018/article/details/80953312
通常会在网页中遇到用src="data:image/png;base64,xxxx" 来代表一张图片,不知道这是什么意思,今天就来探究一下:
那么这是什么呢?这是Data URI scheme,Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。
在Data URI中,data表示取得数据的协定名称,image/png 是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。
目前,Data URI scheme支持的类型有:
- 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图片数据
base64编码
1 #将文字转成base64编码 2 >>> import base64 3 >>> ls_s='test4321' 4 >>> ls_t=base64.b64encode(ls_s) 5 >>> print ls_t 6 dGVzdDQzMjE= 7 >>> print base64.b64decode(ls_t) 8 test4321 9 >>> 10 # 把图片内容转成base64编码 11 import base64 12 f=open('./1.jpg','rb') #二进制方式打开图文件 13 ls_f=base64.b64encode(f.read()) #读取文件内容,转换为base64编码 14 f.close() 15 # 把编码文本写入一个页面中 16 fw=open('./1.html','w') #打开一个空白文本文件,准备写入 17 fw.write('<html><body> <img src="data:image/jpeg;base64,'+ls_f+'"/> </body></html>') 18 fw.flush() 19 fw.close()
网页的表达
1 <html><body> 2 <img src="data:image/jpeg;base64,这里放的是上面写入的1.txt 的内容" /> 3 </body></html>