<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關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題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)前端壓縮上傳圖片的實例代碼

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

        基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼

        基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼:具體代碼如下所示: <!DOCTYPE html> <html> <head> <meta charset=UTF-8> <title>前端壓縮上傳圖片</title> <script src=https://cdn.bootcss.com/jquery/
        推薦度:
        導讀基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼:具體代碼如下所示: <!DOCTYPE html> <html> <head> <meta charset=UTF-8> <title>前端壓縮上傳圖片</title> <script src=https://cdn.bootcss.com/jquery/

        具體代碼如下所示:

        <!DOCTYPE html>
        <html>
        <head>
         <meta charset="UTF-8">
         <title>前端壓縮上傳圖片</title>
         <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
        </head>
        <body>
         <input type="file" id="picFile" onchange="readFile(this)" />
         <img id="img" src="" alt="" />
         <script>
         function readFile(obj) {
         var file = obj.files[0];
         //判斷類型是不是圖片 
         if (!/image\/\w+/.test(file.type)) {
         alert("請確保文件為圖像類型");
         return false;
         }
         var reader = new FileReader();
         reader.readAsDataURL(file);
         reader.onload = function(e) {
         dealImage(this.result, { quality: 0.5 }, function(base) {
         //調(diào)用
         var blob = dataURLtoBlob(base);
         var newFile = new File([blob], file.name, { type: file.type });
         console.log(newFile)
         let r = new FileReader(); //本地預(yù)覽
         r.onload = function() {
         $('#img').attr("src", r.result);;
         }
         r.readAsDataURL(newFile); //Base64
         // upload(newFile);
         });
         }
         }
         //將base64轉(zhuǎn)換為blob
         function dataURLtoBlob(dataurl) {
         var arr = dataurl.split(','),
         mime = arr[0].match(/:(.*?);/)[1],
         bstr = atob(arr[1]),
         n = bstr.length,
         u8arr = new Uint8Array(n);
         while (n--) {
         u8arr[n] = bstr.charCodeAt(n);
         }
         return new Blob([u8arr], { type: mime });
         }
         function upload(file) {
         var that = this;
         // 創(chuàng)建form對象
         let param = new FormData();
         // 通過append向form對象添加數(shù)據(jù)
         param.append('img', file);
         // 文件大小
         param.append('size', file.size);
         for (var n in that.params) {
         param.append(n, that.params[n]);
         }
         // 創(chuàng)建ajax
         var xhr = new XMLHttpRequest();
         xhr.onload = function() {
         console.log(xhr.responseText)
         }
         xhr.open("POST", "yourapi", true);
         // 發(fā)送表單數(shù)據(jù)
         xhr.send(param);
         }
         /**
         * 圖片壓縮,默認同比例壓縮
         * @param {Object} path
         * pc端傳入的路徑可以為相對路徑,但是在移動端上必須傳入的路徑是照相圖片儲存的絕對路徑
         * @param {Object} obj
         * obj 對象 有 width, height, quality(0-1)
         * @param {Object} callback
         * 回調(diào)函數(shù)有一個參數(shù),base64的字符串數(shù)據(jù)
         */
         function dealImage(path, obj, callback) {
         var img = new Image();
         img.src = path;
         img.onload = function() {
         var that = this;
         // 默認按比例壓縮
         var w = that.width,
         h = that.height,
         scale = w / h;
         w = obj.width || w;
         h = obj.height || (w / scale);
         var quality = obj.quality || 0.7; // 默認圖片質(zhì)量為0.7
         //生成canvas
         var canvas = document.createElement('canvas');
         var ctx = canvas.getContext('2d');
         // 創(chuàng)建屬性節(jié)點
         var anw = document.createAttribute("width");
         anw.nodeValue = w;
         var anh = document.createAttribute("height");
         anh.nodeValue = h;
         canvas.setAttributeNode(anw);
         canvas.setAttributeNode(anh);
         ctx.drawImage(that, 0, 0, w, h);
         // 圖像質(zhì)量
         if (obj.quality && obj.quality <= 1 && obj.quality > 0) {
         quality = obj.quality;
         }
         // quality值越小,所繪制出的圖像越模糊
         var base64 = canvas.toDataURL('image/jpeg', quality);
         // 回調(diào)函數(shù)返回base64的值
         callback(base64);
         }
         }
         </script>
        </body>
        </html>

        總結(jié)

        以上所述是小編給大家介紹的基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
        如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

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

        文檔

        基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼

        基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼:具體代碼如下所示: <!DOCTYPE html> <html> <head> <meta charset=UTF-8> <title>前端壓縮上傳圖片</title> <script src=https://cdn.bootcss.com/jquery/
        推薦度:
        標簽: 圖片 上傳 js
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 黄色一级视频免费| 亚洲欧美国产国产综合一区 | 国产亚洲婷婷香蕉久久精品| 国产亚洲福利一区二区免费看| 天天干在线免费视频| 亚洲色偷偷偷综合网| 免费黄色网址入口| 国产精品亚洲精品日韩动图 | 看全色黄大色大片免费久久| 亚洲综合色丁香婷婷六月图片| 久久久久国产精品免费免费搜索| 亚洲综合校园春色| 国产美女无遮挡免费网站| 黄色免费网址大全| 国产亚洲精品自在久久| 1000部拍拍拍18勿入免费视频下载 | 亚洲精品无码激情AV| 久久WWW免费人成—看片| 国产精品亚洲成在人线| 99视频在线精品免费| 亚洲av午夜精品无码专区| 精品少妇人妻AV免费久久洗澡| 看全免费的一级毛片| 亚洲日韩精品一区二区三区| 毛片在线播放免费观看| 亚洲一区在线观看视频| 四虎永久在线精品视频免费观看| 色妞www精品视频免费看| 亚洲AV无码乱码在线观看裸奔 | 无码人妻久久一区二区三区免费| 亚洲成a人片7777| 四虎影视在线永久免费观看| 精品一区二区三区免费视频 | 亚洲香蕉免费有线视频| 热99re久久精品精品免费| 精品久久久久久国产免费了| 亚洲国产成人精品电影| 亚洲精品国产高清嫩草影院| 69视频在线是免费观看| 国产成人亚洲精品电影| 亚洲日本中文字幕|