国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

HTML5聯合canvas實現圖片壓縮

2020-03-24 18:01:19
字體:
來源:轉載
供稿:網友
這次給大家帶來HTML5聯合canvas實現圖片壓縮,主要以代碼的形式體現,下面就是實戰案例,一起來看一下。

 !DOCTYPE html  html  head  meta charset= UTF-8  meta name= viewport content= width=device-width, initial-scale=1, maximum-scale=1  title lianxi /title  style type= text/css  /style  /head  body  form  名字: input type= text name = username id = username /  上傳: input type= file name = fileimage id = fileimage /  /form  button button /button  script  var file = document.querySelector( #fileimage ) var username = document.querySelector( #username ) var canvas = document.createElement( canvas  var span = document.createElement( span ) var formData = new FormData() file.addEventListener( change ,function() { //實現的原理的new formData()然后把這個formData 用ajax傳進去 span.innerHTML = 預覽圖加載中...  document.body.appendChild(span) console.log(file.files[0]) username.value ? formData.append( username ,username.value) : null; resize(file.files[0]); //上傳前的圖片壓縮 function resize(file) { var reader = new FileReader() reader.readAsDataURL(file) var img = new Image() reader.onload = function (e) { // this.result就是圖片的base64地址信息 img.src = this.result; var context = canvas.getContext( 2d  var gif = document.createElement( img ) // base64地址圖片加載完畢后 img.onload = function () { // 圖片原始尺寸 //定義畫布的大小 if (img.width 300 || img.height 300) { if (img.width img.height) { canvas.width = 300 canvas.height = img.height / img.width * 300 else { canvas.height = 300 canvas.width = img.width / img.height * 300 //從那里開始截取圖片 context.drawImage(img, 0, 0, canvas.width, canvas.height) /*第一個參數是創建的img對象;第二個參數是左上角坐標,后面兩個是畫布區域寬高*/ //壓縮后的圖片base64 url /*canvas.toDataURL(mimeType, qualityArgument),mimeType 默認值是 image/jpeg  * qualityArgument表示導出的圖片質量,只要導出為jpg和webp格式的時候此參數才有效果,默認值是0.92*/ //var newUrl = canvas.toDataURL( image/jpeg , 0.92);//base64 格式 document.body.removeChild(span) document.querySelector( body ).appendChild(canvas) //這是上傳的 document.querySelector( button ).addEventListener( click ,function(){ canvas.toBlob(function(blob){ var xhr = new XMLHttpRequest() formData.append( fileimage , blob, 002.webp ) xhr.open( POST , test.php , true)//默認true 為異步 //上傳進度 xhr.upload.addEventListener( progress ,function (e) { console.log( 上傳進度為: + (e.loaded/e.total*100).toFixed(2)+ % )//多次出現 // event.total是需要傳輸的總字節,event.loaded是已經傳輸的字節 xhr.upload.addEventListener( loadstart , function () { console.log( 上傳開始 )//只出現一次 xhr.onreadystatechange = function () { if (xhr.readyState === 4) { if (xhr.status = 200 xhr.status 300 || xhr.status == 304) { console.log(JSON.parse(xhr.responseText))//成功后的返回值 else { console.log( Request was unsuccessful: + xhr.status); //xhr.setRequestHeader( Content-type , multipart/form-data  xhr.send(formData) }, image/webp ,0.9) /script  /body  /html 

需要注意的是后端需要加上header( Access-Control-Allow-Origin:* 以實現跨域

相關鏈接:

html5+canvas實現圖片的壓縮上傳

HTML5 Canvas 實現本地壓縮圖片

HTML5 canvas實現圖片拉伸、壓縮與裁剪

以上就是HTML5聯合canvas實現圖片壓縮的詳細內容,html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郑州市| 清徐县| 河北区| 蛟河市| 昌邑市| 丁青县| 泽普县| 阳谷县| 徐闻县| 静海县| 合水县| 陆丰市| 渝中区| 三明市| 怀柔区| 富锦市| 朝阳区| 绿春县| 德令哈市| 宜黄县| 犍为县| 深泽县| 探索| 墨江| 南涧| 西林县| 平武县| 本溪市| 镇江市| 荣成市| 偏关县| 宜良县| 安平县| 揭西县| 突泉县| 平山县| 揭阳市| 奉化市| 延安市| 延津县| 盐山县|