Data URI scheme:data:image/jpeg;

  今天在用一個croppic的jQuery裁剪圖片的插件的時候,發如今後臺獲取圖片時,沒法經過Request.File獲取了,可是經過Request.Form[]能夠。用firebug跟了一下發現,圖片傳輸的數據不是一個文件流的形式進行提交的,而是一個表單元素,以下圖所示:javascript

  

 通過一番度娘後,學習了新知識,原來是瀏覽器經過Data URI scheme 把圖片利用base64編碼把圖片數據翻譯成標準的ASCII字符。php

 在上面的Data URI中,data表示取得數據的協定名稱,image/png 是數據類型名稱,base64 是數據的編碼方法,逗號後面就是這個image/png文件base64編碼後的數據。css

 不僅是數據的提交,在數據的渲染時候,也能夠這麼用:<img src="data:image/jpg;base64,iVBORw0KGgo"/>等效於:<img src="http://www.oschina.net/img/logo_s2.png"/>html

 優勢:Data URL是在本地直接繪製圖片,不是從服務器加載,因此節省了一個HTTP 請求,起到加速網頁的做用。
java

 缺點:適合於小圖片,由於用這種方式會增長網頁的大小,因此文件太大了不合適,另外IE8如下瀏覽器不支持這種方法。用這種方法會加劇客戶端的CPU和內存負擔,由於瀏覽器不會緩存這種圖像
瀏覽器

 目前,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圖片數據

 附加:asp.net後臺程序如何獲取這種編碼而且保存成文件呢?緩存

  

  而後SaveAs一下就OK了。服務器

  學習地址:http://www.jb51.net/css/41981.html http://www.cnblogs.com/xcsn/p/4677373.html  https://www.lvtao.net/dev/php-image-data-url.html asp.net

相關文章
相關標籤/搜索