成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

javascript實現(xiàn)移動端 HTML5 圖片上傳預(yù)覽和壓縮功能示例

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

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

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

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

file 和 FileList 對象

file對象可以用來獲取某個文件的信息,還可以用來讀取這個文件的內(nèi)容.通常情況下,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 (中國標(biāo)準(zhǔn)時間)name:'1.png'size:22177type:'image/png'webkitRelativePath:''FileReader

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

1、具體使用之前,我們應(yīng)先創(chuàng)建一個FileReader 對象

var reader = new FileReader()

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

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

3、在 onload 事件中觸發(fā)回調(diào)

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

HTMLCanvasElement.toDataURL() 方法返回一個包含圖片展示的 data URI 。可以使用 type 參數(shù)其類型,默認(rèn)為 PNG 格式。圖片的分辨率為96dpi。

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

語法

canvas.toDataURL(type, encoderOptions);

參數(shù)

type 可選

​ 圖片格式,默認(rèn)為 image/png

encoderOptions 可選

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

壓縮

/*** @param{Object}finput選擇的圖片必填* @param{String}quality圖片壓縮的質(zhì)量[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; // 設(shè)置最大分辨率 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); });}實例

下面我們就來實現(xiàn)圖片預(yù)覽和壓縮功能

HTML結(jié)構(gòu)如下:

<div class='upload'> <p>上傳圖片</p> <form> <input multiple type='file' /> </form> <h4>原圖預(yù)覽</h4> <img src='http://www.piao2010.com/bcjs/16696.html' id='test'> <h4>壓縮后預(yù)覽</h4> <img src='http://www.piao2010.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) { // 拼接顯示預(yù)覽圖片的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); // 將轉(zhuǎn)化后的圖片地址放在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; // 設(shè)置最大分辨率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效果預(yù)覽:

javascript實現(xiàn)移動端 HTML5 圖片上傳預(yù)覽和壓縮功能示例

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript圖片操作技巧大全》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript運動效果與技巧匯總》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》

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

標(biāo)簽: JavaScript
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产精品久久久久久久蜜臀| 欧美日韩三级一区二区| 欧美亚一区二区| 亚洲激情在线激情| 黄色工厂这里只有精品| 欧美肥妇毛茸茸| 久久成人羞羞网站| 色猫猫国产区一区二在线视频| 亚洲一级二级三级在线免费观看| 亚洲成人直播| 国产精品女主播av| 国模精品娜娜一二三区| 中文字幕欧美日韩一区| 欧美成人午夜| 国产日韩精品一区| 播五月开心婷婷综合| 日韩精品一区二区三区中文不卡 | av网站免费线看精品| 日韩一区二区精品在线观看| 国产精品99久| 精品国产91亚洲一区二区三区婷婷| 国产盗摄一区二区三区| 欧美大片在线观看| www.av亚洲| 国产欧美一区二区三区沐欲| 欧美日本一区| 国产精品青草综合久久久久99| 国内精品99| 亚洲狼人国产精品| 午夜在线a亚洲v天堂网2018| 午夜成人免费视频| 在线观看av一区二区| 美女脱光内衣内裤视频久久影院| 在线观看视频一区二区欧美日韩| 经典三级一区二区| 91精品国产一区二区| thepron国产精品| 国产精品美女视频| 夜夜精品视频| 日韩高清中文字幕一区| 欧美日韩三级视频| 9久草视频在线视频精品| 国产精品入口麻豆原神| 亚洲少妇诱惑| 日韩激情中文字幕| 欧美日韩1区2区| jizz一区二区| 亚洲三级在线播放| 色狠狠色噜噜噜综合网| 久久99精品久久久久婷婷| 欧美电影精品一区二区| 91视视频在线观看入口直接观看www | 91麻豆免费观看| 国产精品九色蝌蚪自拍| 国产精品丝袜xxxxxxx| 日本不卡一区二区三区高清视频| 欧美老肥妇做.爰bbww| 99热精品国产| 一区二区久久久久| 欧美日韩在线精品一区二区三区激情| 成人丝袜18视频在线观看| 国产精品久久毛片av大全日韩| 麻豆精品传媒视频| 国产乱妇无码大片在线观看| 久久久精品日韩欧美| 国产精品久久久久毛片大屁完整版| 免费的国产精品| 精品国精品自拍自在线| 99热这里只有成人精品国产| 久久99久久久久| 国产欧美日韩三级| 免费不卡亚洲欧美| 国产一级精品在线| 国产精品美女久久久久久久久久久 | 亚洲视频在线一区观看| 久热这里只精品99re8久| 国产精品88av| 国产女人18水真多18精品一级做 | 中文日韩在线| 久久精品国产久精国产| 久久精品亚洲一区二区三区浴池| 国产亚洲高清视频| 国产毛片精品视频| 中文字幕一区二区三区四区| 欧美色图第一页| 欧美人与禽猛交乱配| 日韩国产高清影视| 久久精品夜夜夜夜久久| 久久久www| 欧美一区二区三区另类| 亚洲大片一区二区三区| 欧美成人精品高清在线播放| 亚洲精品系列| 国内精品久久久久影院薰衣草 | 亚洲国产精品激情在线观看| 久久久综合网| 北条麻妃国产九九精品视频| 一区二区三区**美女毛片| 欧美福利视频一区| 91伊人久久大香线蕉| 99国内精品久久久久久久软件| 成人91在线观看| 麻豆9191精品国产| 亚洲欧洲无码一区二区三区| 五月婷婷综合网| 中文字幕一区视频| 日韩亚洲国产中文字幕欧美| 色一情一乱一乱一91av| 欧美va亚洲va| 国产欧美一区二区色老头| 久久精品三级| 亚洲精品成人精品456| 国内精品视频666| 极品美女销魂一区二区三区免费| 亚洲一区二区三区视频在线 | 欧美曰成人黄网| www.综合网.com| 天堂午夜影视日韩欧美一区二区| 精品动漫一区二区三区在线观看| 91久久线看在观草草青青| 91捆绑美女网站| 精彩视频一区二区| 亚洲高清在线精品| 国产日韩精品一区二区三区在线| 欧美精品第一页| 一区二区三区精品视频在线观看| 成人免费毛片a| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲日本欧美天堂| 精品福利一区二区三区| 欧美中文字幕一区二区三区| 亚洲成人在线| 91在线免费看| 狠狠色综合播放一区二区| 亚洲一区二区在线免费看| 久久久亚洲午夜电影| 欧美日韩一区中文字幕| 亚洲欧美成人| 欧美连裤袜在线视频| 国产精品一区二区三区网站| 亚洲成人你懂的| 中文字幕在线视频一区| 日韩一区二区三区三四区视频在线观看| 国产视频不卡| 欧美区亚洲区| 成人免费福利片| 久久av资源网| 日本三级亚洲精品| 亚洲一区视频在线| 国产精品电影一区二区| 日韩久久久精品| 欧美日韩中文另类| 久久精品国产第一区二区三区最新章节 | 成a人片国产精品| 久久电影网站中文字幕| 亚洲va欧美va人人爽午夜| 亚洲视频中文字幕| 国产欧美日韩在线看| 日韩午夜av电影| 在线精品视频小说1| 国产一级一区二区| 国模精品娜娜一二三区| 99精品国产91久久久久久| 国产在线视频精品一区| 日韩成人免费在线| 亚洲影视在线观看| 一区二区激情小说| 亚洲乱码国产乱码精品精98午夜| 国产欧美日韩在线观看| 精品入口麻豆88视频| 欧美一区二区女人| 678五月天丁香亚洲综合网| 欧美最猛黑人xxxxx猛交| 久久人人九九| 久久久久se| 久久久久久婷| 久久久久久自在自线| 久久精品日韩| 免费久久99精品国产自在现线| 一区二区三区视频在线播放| 亚洲国产欧美日韩| 精品99视频| 亚洲高清电影| 激情欧美一区| 亚洲经典三级| 在线一区日本视频| 国产精品推荐精品| 久久久久久精| 在线观看日韩精品| 欧美性生活影院| 欧美剧情电影在线观看完整版免费励志电影 | 国产美女一区二区三区| 美国三级日本三级久久99| 日韩福利电影在线观看| 视频一区在线视频| 日韩av成人高清| 免费欧美在线视频| 精品一区二区国语对白| 国产精品99久久久| 成人一区二区三区|