成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_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国内精品久久久久久久
国产欧美一区二区色老头| 欧美一级在线观看| 欧美精品在线观看播放| wwwwww.欧美系列| 国产精品久久久久久久第一福利 | 国产亚洲一区二区在线观看| 一级中文字幕一区二区| 麻豆精品久久久| 91老司机福利 在线| 欧美一级视频| 欧美一级国产精品| 日韩美女久久久| 国产制服丝袜一区| 欧美大香线蕉线伊人久久国产精品| 国产精品毛片在线| 51精品秘密在线观看| 亚洲啪啪综合av一区二区三区| 久久97超碰国产精品超碰| 黑人一区二区| 欧美日本一区二区| 欧美日韩一卡| 99久精品国产| 色婷婷综合久久| 日韩精品一区二区三区在线观看| 一区二区三区日韩在线观看| 成人中文字幕在线| 久久av一区二区三区| 久久久久久久综合| 日韩精品一二区| 欧美日韩精品一区| 欧美二区在线观看| 亚洲精品欧美专区| 高清不卡在线观看| 性刺激综合网| 久久尤物电影视频在线观看| 日本欧美肥老太交大片| 欧美日韩在线播放一区二区| 在线电影院国产精品| 亚洲日本在线a| 成人深夜视频在线观看| 久久国产精品久久w女人spa| 国产日本欧美一区二区| 免费成人你懂的| 亚洲裸体视频| 久久久五月婷婷| 蜜臀av性久久久久蜜臀av麻豆| 亚洲午夜黄色| 555夜色666亚洲国产免| 亚洲最新视频在线播放| av不卡免费在线观看| 色偷偷成人一区二区三区91| 最新不卡av在线| 久久一夜天堂av一区二区三区| 久久亚洲综合av| 奇米影视7777精品一区二区| 亚洲丰满在线| 久久久久青草大香线综合精品| 裸体在线国模精品偷拍| 国产亚洲一区在线播放| 久久看人人爽人人| 国产一区在线观看视频| 国产精品美女久久久浪潮软件| 久久婷婷成人综合色| 九色|91porny| 色综合久久久久久久久久久| 亚洲丝袜自拍清纯另类| 欧美在线亚洲| 欧美xxxx老人做受| 激情成人午夜视频| 久久久久久久久一区二区| 亚洲少妇中出一区| 色综合天天综合在线视频| 欧美一区二区三区的| 伦理电影国产精品| 老司机一区二区三区| 国产无一区二区| 成人av电影免费在线播放| 欧美日韩国产综合久久| 亚洲国产欧美在线| 亚洲精品无人区| 国产日韩欧美不卡在线| gogogo免费视频观看亚洲一| 欧美日韩国产小视频| 三级成人在线视频| 榴莲视频成人在线观看| 亚洲男人的天堂一区二区| 欧美aa国产视频| 久久久久久日产精品| 99re热精品| 中文字幕第一区二区| 色综合天天性综合| 久久老女人爱爱| 99久久99久久精品免费看蜜桃| 欧美精品视频www在线观看| 久久99热狠狠色一区二区| 色狠狠一区二区三区香蕉| 午夜久久电影网| 免费h精品视频在线播放| 亚洲曰韩产成在线| 国产精品毛片在线| 亚洲第一电影网| 国产日韩一区欧美| 国产欧美1区2区3区| 亚洲欧美亚洲| 国产精品午夜春色av| 国产精品v欧美精品∨日韩| 国产日韩欧美综合在线| 欧美黄污视频| 国产精品久久久久天堂| 国产精品sm| 亚洲天堂久久久久久久| 在线成人h网| 亚洲男人的天堂一区二区| 99视频国产精品免费观看| 一区二区三区四区不卡在线| 亚洲一区二区三区精品视频 | 狠狠色丁香久久综合频道| 久久久久一区二区三区四区| 欧美网站在线| 中文字幕一区二区三区不卡 | 国产馆精品极品| 日韩精品专区在线| 欧美一区二区三区在线免费观看 | 一二三区精品视频| 成人激情小说网站| 国产亚洲欧美一级| 91网站在线播放| 中文字幕亚洲视频| 国产九九精品| 免费一级片91| 制服.丝袜.亚洲.中文.综合| 国产精品1区2区| 久久综合狠狠综合久久激情| 欧美日韩少妇| 一区二区三区av电影| 久久精品盗摄| 精品一区二区三区在线观看国产| 欧美一级国产精品| 欧美激情一区二区三区在线视频| 国产精品久久久久久久久免费丝袜| 欧美精品一区二区三区久久久竹菊| 国产精品福利影院| 欧美专区一区二区三区| 久久99国产精品久久| 久久综合九色综合久久久精品综合| 欧美日韩理论| 午夜私人影院久久久久| 六月天综合网| 国产精华液一区二区三区| 国产无人区一区二区三区| 国产日韩1区| 美日韩黄色大片| 精品久久久久久久一区二区蜜臀| 国精品一区二区三区| 五月开心婷婷久久| 欧美日产在线观看| 欧美一区成人| 亚洲女爱视频在线| 久久在线精品| 成人午夜碰碰视频| 中文字幕乱码日本亚洲一区二区| 99精品视频免费观看视频| 日韩av中文在线观看| 精品日韩在线观看| 亚洲精品乱码久久久久久蜜桃91| 热久久国产精品| 精品日韩一区二区| 在线综合亚洲| 国产一区二区在线免费观看| 久久精品欧美一区二区三区不卡 | 亚洲国产日韩a在线播放| 欧美群妇大交群中文字幕| 91麻豆国产自产在线观看| 一二三区精品视频| 欧美一级夜夜爽| 亚洲日本欧美| 国产麻豆视频一区| 亚洲视频免费看| 欧美精品vⅰdeose4hd| 狠狠入ady亚洲精品经典电影| 玖玖九九国产精品| 日本一二三不卡| 色综合久久久久久久久| 97久久久精品综合88久久| 亚洲成人激情av| 精品国产伦一区二区三区免费 | 一区二区成人在线视频 | 久久精品男女| 91在线国产观看| 日韩精品视频网| 国产亚洲人成网站| 欧美婷婷六月丁香综合色| 欧美一区在线看| 奇米一区二区三区av| 国产精品久久久久久久久免费相片| 欧美日韩另类国产亚洲欧美一级| 狠狠色噜噜狠狠狠狠色吗综合| 国内精品免费**视频| 亚洲欧美色一区| 日韩精品一区二区在线|