參考: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>\n<img src="data:image/jpeg;base64,'+ls_f+'"/>\n</body></html>') 18 fw.flush() 19 fw.close()
網頁的表達
1 <html><body> 2 <img src="data:image/jpeg;base64,這里放的是上面寫入的1.txt 的內容" /> 3 </body></html>