<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答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實現圖片轉換成base64的各種應用場景實例分析

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

        JS實現圖片轉換成base64的各種應用場景實例分析

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

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

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

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

        <input type="file" id="image"><br/>
        
        
        var reader = new FileReader();
        var AllowImgFileSize = 2100000; //上傳圖片最大值(單位字節)( 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{
         //執行上傳操作
         alert(reader.result);
         }
         }
         }
        
        

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

        function(){
         var url = "static/img/js1.jpg";//這是站內的一張圖片資源,采用的相對路徑
         convertImgToBase64(url, function(base64Img){
         //轉化后的base64
         alert(base64Img);
         });
        }
        //實現將項目的圖片轉化成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;
        }
        
        

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

        function(){
           //這是網上的一張圖片鏈接
           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; //上傳圖片最大值(單位字節)( 2 M = 2097152 B )
        if (AllowImgFileSize != 0 && AllowImgFileSize < reader.result.length) {
         alert( '上傳失敗,請上傳不大于2M的圖片!');
         return;
        }
        
        

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

        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數據結構與算法技巧總結》及《JavaScript數學運算用法總結》

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

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

        文檔

        JS實現圖片轉換成base64的各種應用場景實例分析

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

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲AV福利天堂一区二区三| 亚洲乱色熟女一区二区三区丝袜| 亚洲日本视频在线观看| 中文字幕a∨在线乱码免费看| 亚洲国产精品成人久久蜜臀| 激情吃奶吻胸免费视频xxxx| 免费吃奶摸下激烈视频| 51午夜精品免费视频| 亚洲日韩精品A∨片无码| a级毛片毛片免费观看久潮| 久久精品国产亚洲AV麻豆不卡| 国内精品一级毛片免费看| 亚洲欧洲第一a在线观看| 67194熟妇在线永久免费观看| 亚洲一区在线视频| 国产jizzjizz免费视频| 国产成人无码免费看片软件 | 麻豆高清免费国产一区| 亚洲第一二三四区| 免费高清av一区二区三区| 黄网站色成年片大免费高清| 亚洲精品无码专区在线在线播放| 日韩电影免费在线观看| 亚洲午夜一区二区三区| 亚洲国产精品成人AV无码久久综合影院| 国产精品无码永久免费888| 亚洲高清专区日韩精品| AV片在线观看免费| jizz18免费视频| 亚洲精品国产手机| 亚洲成?v人片天堂网无码| 日本在线免费播放| 亚洲AV色无码乱码在线观看| 亚洲午夜久久久久久久久久| 日本三级2019在线观看免费| 偷自拍亚洲视频在线观看| 亚洲Aⅴ无码专区在线观看q| 免费无码看av的网站| 永久免费不卡在线观看黄网站 | 色老头综合免费视频| 亚洲一本综合久久|