• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    JS實現(xiàn)圖片轉換成base64的各種應用場景實例分析

    來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:12:22
    文檔

    JS實現(xiàn)圖片轉換成base64的各種應用場景實例分析

    JS實現(xiàn)圖片轉換成base64的各種應用場景實例分析:本文實例講述了JS實現(xiàn)圖片轉換成base64的各種應用場景。分享給大家供大家參考,具體如下: 網(wǎng)絡上有很多片介紹通過js將圖片轉換成base64的文章,之所以再寫這篇文章的原因時發(fā)現(xiàn)沒有找到系統(tǒng)的介紹的文章,有的介紹如何實現(xiàn)本地項目的圖片轉碼,有的介紹如何
    推薦度:
    導讀JS實現(xiàn)圖片轉換成base64的各種應用場景實例分析:本文實例講述了JS實現(xiàn)圖片轉換成base64的各種應用場景。分享給大家供大家參考,具體如下: 網(wǎng)絡上有很多片介紹通過js將圖片轉換成base64的文章,之所以再寫這篇文章的原因時發(fā)現(xiàn)沒有找到系統(tǒng)的介紹的文章,有的介紹如何實現(xiàn)本地項目的圖片轉碼,有的介紹如何

    本文實例講述了JS實現(xiàn)圖片轉換成base64的各種應用場景。分享給大家供大家參考,具體如下:

    網(wǎng)絡上有很多片介紹通過js將圖片轉換成base64的文章,之所以再寫這篇文章的原因時發(fā)現(xiàn)沒有找到系統(tǒng)的介紹的文章,有的介紹如何實現(xiàn)本地項目的圖片轉碼,有的介紹如何實現(xiàn)網(wǎng)絡資源的圖片轉化,但是系統(tǒng)介紹的少之又少,所以我就在這里將各種場景系統(tǒng)的介紹一下:

    場景一:將用戶本地上傳的資源轉化,即用戶通過瀏覽器點擊文件上傳時,將圖片資源轉化成base64:

    <input type="file" id="image"><br/>
    
    
    var reader = new FileReader();
    var AllowImgFileSize = 2100000; //上傳圖片最大值(單位字節(jié))( 2 M = 2097152 B )超過2M上傳失敗
    var file = $("#image")[0].files[0];
    var imgUrlBase64;
    if (file) {
     //將文件以Data URL形式讀入頁面
     imgUrlBase64 = reader.readAsDataURL(file);
     reader.onload = function (e) {
     //var ImgFileSize = reader.result.substring(reader.result.indexOf(",") + 1).length;//截取base64碼部分(可選可不選,需要與后臺溝通)
     if (AllowImgFileSize != 0 && AllowImgFileSize < reader.result.length) {
     alert( '上傳失敗,請上傳不大于2M的圖片!');
     return;
     }else{
     //執(zhí)行上傳操作
     alert(reader.result);
     }
     }
     }
    
    

    場景二:將本項目中的圖片資源轉化成base64,(我還沒有用到過此場景,感覺場景二也可以通過場景三來實現(xiàn))

    function(){
     var url = "static/img/js1.jpg";//這是站內的一張圖片資源,采用的相對路徑
     convertImgToBase64(url, function(base64Img){
     //轉化后的base64
     alert(base64Img);
     });
    }
    //實現(xiàn)將項目的圖片轉化成base64
    function convertImgToBase64(url, callback, outputFormat){
     var canvas = document.createElement('CANVAS'),
       ctx = canvas.getContext('2d'),
       img = new Image;
       img.crossOrigin = 'Anonymous';
       img.onload = function(){
       canvas.height = img.height;
       canvas.width = img.width;
       ctx.drawImage(img,0,0);
       var dataURL = canvas.toDataURL(outputFormat || 'image/png');
       callback.call(this, dataURL);
       canvas = null;
     };
       img.src = url;
    }
    
    

    場景三:將網(wǎng)絡圖片資源轉化為base64,(感覺場景二中的資源換成絕對路徑即可使用在場景三中)

    function(){
       //這是網(wǎng)上的一張圖片鏈接
       var url="http://p1.pstatp.com/large/435d000085555bd8de10";
     getBase64(url)
     .then(function(base64){
     console.log(base64);//處理成功打印在控制臺
     },function(err){
     console.log(err);//打印異常信息
     });
    }
    //傳入圖片路徑,返回base64
    function getBase64(img){
     function getBase64Image(img,width,height) {//width、height調用時傳入具體像素值,控制大小 ,不傳則默認圖像大小
     var canvas = document.createElement("canvas");
     canvas.width = width ? width : img.width;
     canvas.height = height ? height : img.height;
     var ctx = canvas.getContext("2d");
     ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
     var dataURL = canvas.toDataURL();
     return dataURL;
     }
     var image = new Image();
     image.crossOrigin = '';
     image.src = img;
     var deferred=$.Deferred();
     if(img){
     image.onload =function (){
     deferred.resolve(getBase64Image(image));//將base64傳給done上傳處理
     }
     return deferred.promise();//問題要讓onload完成后再return sessionStorage['imgTest']
     }
    }
    
    

    至此,便將圖片base64轉碼的三種場景介紹完畢了,下面是基于以上的一下拓展:

    拓展一:后臺需要以純字符串的形式上傳(即去掉data:image/png;base64,截取字符串即可)

    reader.result.substring(reader.result.indexOf(",") + 1)
    
    

    拓展二:判斷base64資源大小,超過2M不讓上傳

    var AllowImgFileSize = 2100000; //上傳圖片最大值(單位字節(jié))( 2 M = 2097152 B )
    if (AllowImgFileSize != 0 && AllowImgFileSize < reader.result.length) {
     alert( '上傳失敗,請上傳不大于2M的圖片!');
     return;
    }
    
    

    其中reader.result即是base64轉碼后的結果。以上便是對網(wǎng)絡上的一些資源的整理,親測可用。

    PS:這里再為大家提供幾款base64在線工具供大家參考:

    BASE64編碼解碼工具:
    http://tools.jb51.net/transcoding/base64

    在線圖片轉換BASE64工具:
    http://tools.jb51.net/transcoding/img2base64

    Base64在線編碼解碼 UTF-8版:
    http://tools.jb51.net/tools/base64_decode-utf8.php

    Base64在線編碼解碼 gb2312版:
    http://tools.jb51.net/tools/base64_decode-gb2312.php

    更多關于JavaScript相關內容可查看本站專題:《JavaScript加密解密技巧匯總》、《javascript編碼操作技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》及《JavaScript數(shù)學運算用法總結》

    希望本文所述對大家JavaScript程序設計有所幫助。

    聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    JS實現(xiàn)圖片轉換成base64的各種應用場景實例分析

    JS實現(xiàn)圖片轉換成base64的各種應用場景實例分析:本文實例講述了JS實現(xiàn)圖片轉換成base64的各種應用場景。分享給大家供大家參考,具體如下: 網(wǎng)絡上有很多片介紹通過js將圖片轉換成base64的文章,之所以再寫這篇文章的原因時發(fā)現(xiàn)沒有找到系統(tǒng)的介紹的文章,有的介紹如何實現(xiàn)本地項目的圖片轉碼,有的介紹如何
    推薦度:
    標簽: 轉成 使用 js
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品自拍一区| 国产精品福利在线观看免费不卡| 99久久国产综合精品成人影院| 亚洲欧洲精品成人久久曰影片| 亚洲精品视频在线| 国产精品一久久香蕉国产线看观看| 精品视频一区二区三区| 88久久精品无码一区二区毛片| 精品无码国产一区二区三区AV| 日本加勒比久久精品| 国产三级精品三级在专区| 亚洲国产精品久久久久婷婷软件| 国产精品亚洲аv无码播放| 在线精品无码字幕无码AV| 看99视频日韩精品| 精品久久久久久无码中文字幕 | 四虎成人精品国产永久免费无码| 最新国产精品亚洲| 精品一区二区三区免费| 99re热视频这里只精品| 国产成人精品无码一区二区| 全球AV集中精品导航福利| 亚洲精品自产拍在线观看| 香蕉依依精品视频在线播放| 久久91这里精品国产2020| 国产精品爽爽ⅴa在线观看| 亚洲国产精品lv| 99久久人人爽亚洲精品美女 | 国产一区二区精品| 国产a视频精品免费观看| 99精品人妻无码专区在线视频区| 国产欧美日韩精品a在线观看| 久久亚洲精品中文字幕| 久久久精品人妻一区二区三区蜜桃 | 亚洲乱码精品久久久久..| 自拍中文精品无码| 亚洲精品无码不卡在线播HE| 亚洲国产精品一区二区第一页| 亚洲国产精品无码中文字| 欧美日韩人妻精品一区二区在线 | 亚洲精品无码永久中文字幕|