HTML base64格式的二進制流在 img 標簽內(nèi)顯示

? ? ? ? 頁面圖片渲染的常用做法是 直接在 img 標簽內(nèi) 給 src 附一個 url 地址,交由瀏覽器去下載、緩存、渲染圖片,如下圖:

常規(guī)做法

? ? ? ? 但這樣做就要去做一個圖片存儲的服務,有些即時性的圖片是不需要保存的,就需要前臺以二進制流的方式去渲染圖片,旁邊小伙的在做的時候遇到了這個問題。于是度娘了相關(guān)方法,記錄下:

兩種圖片渲染方式

? ? ? ? 圖片而禁止留渲染要用到 Data URI scheme。

? ? ? ? Data URI scheme是在RFC2397中定義的,目的是將一些小的數(shù)據(jù),直接嵌入到網(wǎng)頁中,從而不用再從外部文件載入。比如上面那串字符,其實是一張小圖片,將這些字符復制黏貼到火狐的地址欄中并轉(zhuǎn)到,就能看到它了,一張1X36的白灰png圖片。

? ? ? ? 在上面的Data URI中,data表示取得數(shù)據(jù)的協(xié)定名稱,image/png 是數(shù)據(jù)類型名稱,base64 是數(shù)據(jù)的編碼方法,逗號后面就是這個image/png文件base64編碼后的數(shù)據(jù)。

? ? ? ? 目前,Data URI scheme支持的類型有:

? ? ? ? data:,文本數(shù)據(jù)

? ? ? ? data:text/plain,文本數(shù)據(jù)

? ? ? ? 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圖片數(shù)據(jù)

? ? ? ? data:image/png;base64,base64編碼的png圖片數(shù)據(jù)

? ? ? ? data:image/jpeg;base64,base64編碼的jpeg圖片數(shù)據(jù)

? ? ? ? data:image/x-icon;base64,base64編碼的icon圖片數(shù)據(jù)

? ? ? ? base64簡單地說,它把一些 8-bit 數(shù)據(jù)翻譯成標準 ASCII 字符,網(wǎng)上有很多免費的base64 編碼和解碼的工具,感興趣,可以去查閱下相關(guān)資料

? ? ? ? 目前,IE8、Firfox、Chrome、Opera瀏覽器都支持這種小文件嵌入。

? ? ? ? 我們把圖像二進制流文件的內(nèi)容直接寫在了HTML 文件中,這樣做的好處是,節(jié)省了一個HTTP 請求。壞處呢,就是瀏覽器不會緩存這種圖像。大家可以根據(jù)實際情況進行自由取舍。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,550評論 0 17
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 解決方案: 1. Css sprite 雪碧圖,也稱為css精靈圖 2. Icon font 圖標字體 3. Da...
    緣自世界閱讀 1,980評論 0 1
  • 今天,第四節(jié)課數(shù)學老師告訴我們下午一二節(jié)課有節(jié)課是考試,我本來想把書帶去接送站復習去,可是一不小心把英語書當成了數(shù)...
    郭筱然閱讀 291評論 0 0
  • 姓名:張弛 公司:沈陽防銹包裝材料有限責任公司 【六項精進打卡第122天】 【知~學習】 閱讀《六項精進》大綱0遍...
    Leo_zhang閱讀 142評論 0 0