.NET ez 2012-09-06
假如有一張小圖要嵌入頁面,會用下列語法: <img src="xxx.jpg">
如果使用 Data URI 就會變為: <img src="data:image/jpg;base64,..................">
當頁面為 html + img 就等於需要兩次 Request,如果改用 Data URI 僅需傳送 html 一次 Request,所以可以達到載入加快的效果。
※但如果圖片有快取,第二次載入反而不會比較快,使用上請自行斟酌。
C#直接將圖片載入成 Data URI:
protected string GetDataURL(string imgFile) { return "<img src=\"data:image/" + Path.GetExtension(imgFile).Substring(1) + ";base64," + Convert.ToBase64String(File.ReadAllBytes(imgFile)) + "\" />"; }
頁面上只需將img改為
<%=GetDataURL(Server.MapPath("~/temp.jpg"))%>
※Data URI 僅適用於 IE8含以上
接下來介紹要如何將 Data URI 轉回檔案。 例如接收到的URL為:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..../>
首先將src取出,變數取名為 str,並且將檔案儲存為 a.png:
File.WriteAllBytes(Server.MapPath("a.png"), Convert.FromBase64String(str.Substring(str.IndexOf(",") + 1)));
標籤: .NET