日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

javascript實現移動端 HTML5 圖片上傳預覽和壓縮功能示例

瀏覽:332日期:2023-10-31 14:03:12

本文實例講述了javascript實現移動端 HTML5 圖片上傳預覽和壓縮功能。分享給大家供大家參考,具體如下:

在開發移動端web網頁中,我們不可避免的會遇到文件上傳的功能,但由于手機圖片尺寸太大,上傳時間過長導致用戶體驗太差,就需要在上傳前對圖片進行一定的壓縮。

在代碼之前,有必要先了解我們即將使用到的幾個API

file 和 FileList 對象

file對象可以用來獲取某個文件的信息,還可以用來讀取這個文件的內容.通常情況下,File對象是來自用戶在一個 input 元素上選擇文件后返回的FileList對象,也可以是來自由拖放操作生成的 DataTransfer對象。

通常情況我們這樣使用它:

<input type='file' multiple/>// FileList 對象var fs = document.getElementById('text').filesconsole.log(fs)>>FileList0:FilelastModified:1487309111498lastModifiedDate:Fri Feb 17 2017 13:25:11 GMT+0800 (中國標準時間)name:'1.png'size:22177type:'image/png'webkitRelativePath:''FileReader

FileReader,web應用程序使用它可以異步的讀取存儲在用戶計算機上的文件(或者原始數據緩沖)內容。

1、具體使用之前,我們應先創建一個FileReader 對象

var reader = new FileReader()

2、然后讀取一個文件,共有四種方式,這里只介紹我們最常使用的一個:

reader.readAsDataURL(fs);// var fs = document.getElementById('text').files

3、在 onload 事件中觸發回調

reader.onload = function (e) { console.log(e) console.log(this) } // this.result 是一個base64 格式的圖片地址HTMLCanvasElement.toDataURL()

HTMLCanvasElement.toDataURL() 方法返回一個包含圖片展示的 data URI ??梢允褂?type 參數其類型,默認為 PNG 格式。圖片的分辨率為96dpi。

如果畫布的高度或寬度是0,那么會返回字符串“data:,”。 如果傳入的類型非“image/png”,但是返回的值以“data:image/png”開頭,那么該傳入的類型是不支持的。 Chrome支持“image/webp”類型。

語法

canvas.toDataURL(type, encoderOptions);

參數

type 可選

​ 圖片格式,默認為 image/png

encoderOptions 可選

​ 在指定圖片格式為 image/jpeg 或 image/webp的情況下,可以從 0 到 1 的區間內選擇圖片的質量。如果超出取值范圍, 將會使用默認值 0.92。其他參數會被忽略。

壓縮

/*** @param{Object}finput選擇的圖片必填* @param{String}quality圖片壓縮的質量[0, 1]* @param{String}output_img_type輸出圖片的類型*/compress: function (f, quality, output_img_type) { var mime_type = 'image/jpeg'; if(output_img_type!=undefined && output_img_type=='image/png'){ mime_type = 'image/png'; } createImageBitmap(f).then(function(imageBitmap) { var max = 1000; // 設置最大分辨率 var c_w = ’’; var c_h = ’’; var width = imageBitmap.width; var height = imageBitmap.height; // 等比例縮放 if (width > max || height > max) { if (width > height) {c_w = max;c_h = max * height / width; } else {c_h = max;c_w = max * width / height; } }else { // 不縮放 c_w = width; c_h = height; } var canvas = document.createElement(’canvas’); canvas.width = c_w; canvas.height = c_h; var ctx = canvas.getContext(’2d’); ctx.drawImage(imageBitmap,0,0, width, height, 0, 0, c_w, c_h); canvas.toBlob(function(blob){ images.push(blob); },mime_type, quality); });}實例

下面我們就來實現圖片預覽和壓縮功能

HTML結構如下:

<div class='upload'> <p>上傳圖片</p> <form> <input multiple type='file' /> </form> <h4>原圖預覽</h4> <img src='http://www.b3g6.com/bcjs/16696.html' id='test'> <h4>壓縮后預覽</h4> <img src='http://www.b3g6.com/bcjs/16696.html' style='max-width: 200px;'> <button type='submit'>點擊提交</button></div>

JS 代碼如下:

window.onload = function () { var Upload = { change: function () {var oform = document.querySelector(’form’), _this = this, res = //, oFiles = document.getElementById(’upload_input’).files;console.log(oFiles)for(var key in oFiles) { if(oFiles.hasOwnProperty(key)) { var f = oFiles[key]; var type = f.type; if(type !== ’image/png’ && type !== ’image/jpg’ &&type !== ’image/jpeg’ ) { alert('圖片的格式必須為png或者jpg或者jpeg格式!'); return; } var reader = new FileReader(); reader.readAsDataURL(f); reader.onload = function (e) { console.log(e) console.log(this) var img = document.getElementById(’test’); var img2 = document.getElementById(’test2’); img.src = this.result; var quality = .8; var compressImg = Upload.compress(img,quality); img2.src = compressImg } }} }, change2: function() {var file_arr = file.files; var ul = $('.weui_uploader_files'); if(file_arr.length < 7) { for(var key in file_arr) {if(file_arr.hasOwnProperty(key)) { var f = file_arr[key]; var url = URL.createObjectURL(f); var reader = new FileReader(); reader.readAsDataURL(f); n +=1; if(n < 7) { reader._onload = function(e) { // 拼接顯示預覽圖片的html var list = $('<li class=’weui_uploader_file’ style=’position: relative’>' +'<img id=’preview' + n + '’ class=preview_li’ style=’width: 100%;height: 100%’>' +'<span id=’delImg' + n+ '’ style=’position: absolute; top: 0; right: 4px; color: #e4007f’>X</span></li>'); ul.append(list); // 將轉化后的圖片地址放在img中 var pic = document.getElementById(’preview’ + n); //pic.src = this.result; pic.src=url; console.log(reader); images.push(f); document.getElementById(’delImg’ + n).addEventListener('click', function () {$(this).parent().remove(); }); return {images:images }; }; reader._onload(); }else { $.alert('最多上傳6張圖片'); }} } }else { $.alert('最多上傳6張圖片'); } }, compress: function (source_img, quality, output_img_type) {var mime_type = 'image/jpeg';if(output_img_type!=undefined && output_img_type=='image/png'){ mime_type = 'image/png';}var max = 1000; // 設置最大分辨率var c_w = ’’;var c_h = ’’;var width = source_img.width;var height = source_img.height;// 等比例縮放if (width > max || height > max) { if (width > height) { c_w = max; c_h = max * height / width; } else { c_h = max; c_w = max * width / height; }}else { // 不縮放 c_w = width; c_h = height;}var canvas = document.createElement(’canvas’);canvas.width = c_w;canvas.height = c_h;var ctx = canvas.getContext(’2d’);ctx.drawImage(source_img,0,0, width, height, 0, 0, c_w, c_h);var outputUrl = canvas.toDataURL(mime_type, quality);return outputUrl; }, submit: function () { } }; document.getElementById(’upload_input’).addEventListener(’change’,Upload.change); }

DEMO效果預覽:

javascript實現移動端 HTML5 圖片上傳預覽和壓縮功能示例

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript圖片操作技巧大全》、《JavaScript切換特效與技巧總結》、《JavaScript運動效果與技巧匯總》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

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

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
丝袜亚洲另类欧美| 国产精品成人国产| 亚洲v在线看| 美女久久99| 成人在线免费观看91| 先锋影音国产一区| 欧美精品三级在线| 国产精品普通话对白| 欧美69视频| 四季av一区二区凹凸精品| 国产精品伦一区二区| 亚洲tv在线| 国产视频一区三区| 亚洲作爱视频| 亚洲精品一二三区区别| 国产一区亚洲| 日韩网站中文字幕| 欧美另类中文字幕| 91嫩草精品| 日韩欧美在线精品| 香蕉成人av| 视频福利一区| 福利片在线一区二区| 精品国产亚洲一区二区在线观看| 国产精品日韩精品中文字幕| 91看片一区| 91欧美国产| 成人在线视频中文字幕| 日韩精品免费一区二区在线观看 | 一区二区国产在线| 伊人久久亚洲| 在线视频亚洲欧美中文| 日韩精品免费一区二区夜夜嗨| 视频一区二区三区中文字幕| 免费日韩av| 日韩激情一二三区| 欧美在线日韩| 国产成人精品三级高清久久91| 国产一区二区三区精品在线观看| 精品国产亚洲日本| 日韩中文影院| 亚洲一级特黄| 国产精品婷婷| 狠狠久久婷婷| 亚洲午夜黄色| 国产模特精品视频久久久久| 亚洲一区二区小说| 97se亚洲| 精品久久不卡| 成人日韩精品| 一本色道精品久久一区二区三区| 丝袜美腿一区二区三区| 国产精品一区二区三区av麻| 麻豆精品少妇| 不卡福利视频| 欧洲激情综合| 亚洲精品一二| 国产精品亲子伦av一区二区三区| 成人国产精品| 日韩国产综合| 蜜芽一区二区三区| 欧美日韩91| 国产精品资源| 日韩av福利| 午夜电影亚洲| 国产日韩视频| 日韩中文首页| 日韩av一区二| 国产精品福利在线观看播放| 激情综合在线| 久久黄色影院| 一二三区精品| 欧美激情日韩| 黄色亚洲大片免费在线观看| 欧美精品九九| 亚洲在线久久| 中文在线а√在线8| 婷婷综合五月| 精品一区二区三区中文字幕视频 | 国产成人77亚洲精品www| 久久精品二区三区| 日韩激情中文字幕| 午夜在线一区二区| 亚洲乱码久久| 天堂成人国产精品一区| 一区二区视频欧美| 激情综合婷婷| 欧美日韩精品一区二区三区视频| 黑丝一区二区三区| 久久久久中文| 日韩午夜av| 亚洲欧洲一区| 精品中文字幕一区二区三区四区| 91精品一区国产高清在线gif| 日av在线不卡| 蜜桃国内精品久久久久软件9| 亚洲精品免费观看| 日韩在线高清| 三级久久三级久久久| 国产精品极品| 怡红院精品视频在线观看极品| 国产欧美高清| 亚洲一区二区日韩| 欧洲在线一区| 国产中文欧美日韩在线| 中文字幕一区日韩精品| 久久精品国产68国产精品亚洲| 91精品国产自产观看在线| 久久久久午夜电影| 久久精品欧洲| 午夜在线视频观看日韩17c| 日韩欧美三级| 国产精品亚洲一区二区在线观看| 亚洲精品欧美| 欧美日韩视频免费观看| 日本少妇精品亚洲第一区| 亚洲综合精品| 亚洲天堂一区二区| 国产精品综合色区在线观看| 六月天综合网| 亚洲一级影院| 国产综合色产| 久久男人av资源站| 伊人久久亚洲影院| 欧美亚洲国产激情| 国产精品久久久久久久免费观看 | 久久精品99久久无色码中文字幕| 欧美一区二区三区久久| 亚洲少妇诱惑| 91精品国产91久久久久久黑人| 欧美aa在线视频| 国产精品欧美在线观看| 久久国产精品毛片| 蜜臀av一区二区在线免费观看| 久久久久国产一区二区| 久久精品国产网站| 国产精品一区二区三区www| 日本不卡不码高清免费观看| 亚州av日韩av| 久久国产高清| 日本99精品| 午夜精品影视国产一区在线麻豆| 免费日韩av片| 9色精品在线| 久久精品国产亚洲一区二区三区| 国产欧美高清| 免费视频一区二区三区在线观看| 久久亚洲精品中文字幕| 国产麻豆一区二区三区| 精品免费av| 久久精品国产免费| www.九色在线| 黑森林国产精品av| 免费一级欧美片在线观看网站| 欧美激情综合| 国产精品tv| 国产不卡av一区二区| 国产精品伦一区二区| 九九九精品视频| 动漫av一区| 中文字幕一区二区三区四区久久 | 一区二区精品| 国际精品欧美精品| 久久亚洲欧洲| 日本精品另类| 色欧美自拍视频| 国产精品二区影院| 六月婷婷一区| 水蜜桃久久夜色精品一区的特点| 日韩视频在线一区二区三区| 亚洲深深色噜噜狠狠爱网站| 免费在线观看视频一区| 国产情侣久久| 欧美精品成人| 在线综合欧美| 国产精品麻豆成人av电影艾秋 | 国产亚洲精品v| 男人的天堂久久精品| 午夜av成人| 最新国产拍偷乱拍精品| 一区福利视频| 国产乱论精品| 国产成人免费| 日本欧美在线看| 亚洲免费福利一区| 久久精品国产99国产精品| 四虎成人av| 日韩亚洲精品在线| 日本麻豆一区二区三区视频| 日韩黄色在线观看| 精品亚洲免a| 99久精品视频在线观看视频| 综合五月婷婷| 国产伦一区二区三区| re久久精品视频| 亚洲狼人精品一区二区三区| 五月天av在线| 99视频一区| 精品久久美女| 一区二区视频欧美|