base64圖片轉碼

怎么把圖轉成base64?

  • 方法一:

    new fileReader().readAsDataURL(file)
    
  • 方法二:

    var imgCanvas=document.createElement('canvas');
         mgContext=imgCanvas.getContext('2d');
    var imgAsDataURL=imgCanvas.toDataURL("image/jpeg");
    

缺點
就是任何圖片都被png了
編碼出來的字符串大小可能要比原圖編碼出來的要大

demo 可以在控制臺運行

 var file = document.createElement('input');
 file.type = 'file';
 document.body.appendChild(file);
 file.onchange=function(){
        var reader=new FileReader()
        reader.onload = function ( event ) {console.log(event.target.result);};
        reader.readAsDataURL(file.files[0]);
 }

結果
data:image/jpg;base64,/9j/4QMZRXhpZgAASUkqAAgAAAAL....
然后調用:

  1. Base64 在CSS中的使用

     .demoImg{ background-image: url("data:image/jpg;base64,/9j/4QMZRXhpZgAASUkqAAgAAAAL...."); }
    
  2. Base64 在HTML中的使用

     <img width="40" height="30" src="data:image/jpg;base64,/9j/4QMZRXhpZgAASUkqAAgAAAAL...." />`
    

好處:

  1. data格式的Url最直接的好處是,這些Url原本會引起一個新的網絡訪問,因為那里是一個網頁的地址,
    現(xiàn)在不會有新的網絡訪問了,因為現(xiàn)在這里是網頁的內容。這樣做,會減少服務器的負載,
    當然同時也增加了當前網頁的大小。所以對“小”數(shù)據特別有好處。

  2. data類型Url的形式
    既然是Url,當然也可以直接在瀏覽器的地址欄中輸入。
    我們把圖像文件的內容直接寫在了HTML 文件中,這樣做的好處是,節(jié)省了一個HTTP 請求。

  3. 壞處呢,就是瀏覽器不會緩存這種圖像。

  4. 如果你用的是IE8,如果你想編碼圖片,更簡單的方法是,自己寫一個HTML網頁,把本地圖片放進去,然后用IE8打開該網頁,然后保存為mht文件,然后用記事本打開mht文件,你就會看
    到圖片以及被編碼過了,直接拷貝之,粘貼之,加上data:image/jpeg;base64,等前綴,搞定之。
    在mht文件中,每一個NextPart下面都會有類似下面的幾行說明字段:

    Content-Type: image/jpeg Content-Transfer-Encoding: base64 
    Content-Location: file:///E:/cat2.jpg 
    

根據這些信息就可以知道是用什么方式編碼的什么格式的文件了

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

    data:,文本數(shù)據 data:text/plain,  文本數(shù)據               
    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ù)據 
    data:image/png;base64,          base64編碼的png圖片數(shù)據 
    data:image/jpeg;base64,         base64編碼的jpeg圖片數(shù)據 
    data:image/x-icon;base64,       base64編碼的icon圖片數(shù)據 
    

base64簡單地說,它把一些 8-bit 數(shù)據翻譯成標準 ASCII 字符,

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

推薦閱讀更多精彩內容