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

首頁 > 開發 > JS > 正文

JS HTML圖片顯示Canvas 壓縮功能

2024-05-06 16:38:32
字體:
來源:轉載
供稿:網友

簡單到延伸

最新需要html">js 文件壓縮圖片上傳 以前沒搞過,新手把學習過程分享

一.選擇圖片并顯示

<!DOCTYPE html><html lang="en"><head>  <meta http-equiv="content-type" content="text/html;charset=UTF-8">  <title>Title</title></head><body><input id="imginput" type="file" accept="image/*" onchange="showImg(this)"><div id="img1">  <canvas class="convas01"></canvas></div></body><script>  window.URL=window.URL||window.webkitURL;  var divimg1 = document.getElementById("img1");  function showImg(obj){    var files = obj.files;    var img = new Image();    img.width = 100;    if(window.URL){      img.src = window.URL.createObjectURL(files[0]);    }else{      //opera不支持createObjectURL/revokeObjectURL方法。需要用FileReader對象來處理      var reader = new FileReader();      reader.readAsDataURL(files[0]);      reader.onload = function(e){        img.src = this.result;        img.width = 200;        img.id="img01";        divimg1.appendChild(img);      }    }    img.id="img01";    divimg1.appendChild(img);  }</script></html>

二.使用canvas代碼

<!DOCTYPE html><html lang="en"><head>  <meta http-equiv="content-type" content="text/html;charset=UTF-8">  <title>Title</title></head><body> <input id="imginput" type="file" accept="image/*" onchange="showImg(this)"> <div id="img1">  <canvas id="convas01"></canvas> </div></body> <script>  window.URL=window.URL||window.webkitURL;  var divimg1 = document.getElementById("img1");  var convas = document.getElementById("convas01");  var ht = convas01.getContext("2d");  convas.width = 200;  convas.height = 200;   function showImg(obj){     var files = obj.files;     var img = new Image();     img.width = 200;    if(window.URL){      img.src = window.URL.createObjectURL(files[0]);      img.onload = function(e){        window.URL.revokeObjectURL(this.src);//方便引用無效回收        ht.clearRect(0, 0, convas.width, convas.width);//clearRect() 方法清空給定矩形內的指定像素。        ht.drawImage(img,0,0,convas.width,convas.height);        convas.toDataURL("image/png");      }    }else{      //opera不支持createObjectURL/revokeObjectURL方法。需要用FileReader對象來處理      var reader = new FileReader();      reader.readAsDataURL(files[0]);      reader.onload = function(){        img.src = this.result;        img.width = 200;        img.id="img01";        divimg1.appendChild(img);      }    }   } </script></html>

 三.壓縮處理

<!DOCTYPE html><html lang="en"><head>  <meta http-equiv="content-type" content="text/html;charset=UTF-8">  <title>Title</title></head><body> <input id="imginput" type="file" accept="image/*" onchange="showImg(this)"> <div id="img1">   canvas圖片  <canvas id="convas01"></canvas> </div><div id="img2">壓縮圖片</div></body> <script>  window.URL=window.URL||window.webkitURL;  var divimg1 = document.getElementById("img1");  var divimg2 = document.getElementById("img2");  var convas = document.getElementById("convas01");  var ht = convas01.getContext("2d");  convas.width = 200;  convas.height = 200;   function showImg(obj){     var files = obj.files;     var img = new Image();     img.width = 200;    if(window.URL){      img.src = window.URL.createObjectURL(files[0]);      img.onload = function(e){        window.URL.revokeObjectURL(this.src);//方便引用無效回收        ht.drawImage(img,0,0,convas01.width,convas01.height);        var imgdata = convas.toDataURL("image/png");        //將canvas轉化成Blob對象        var imgobj = new Image();        var blob =dataURLtoBlob(imgdata);        var url = window.URL.createObjectURL(blob);        imgobj.onload = function(e){          window.URL.revokeObjectURL(this.src);        }        imgobj.src= url;        divimg2.appendChild(imgobj);      }    }else{      //opera不支持createObjectURL/revokeObjectURL方法。需要用FileReader對象來處理      var reader = new FileReader();      reader.readAsDataURL(files[0]);      reader.onload = function(){        img.src = this.result;        img.width = 200;        img.id="img01";        divimg1.appendChild(img);      }    }   }  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});  } </script></html>

四.分辨率調節嘗試

<!doctype html><html lang="en"><head>  <meta charset="UTF-8">  <title>Document</title>  <style>    *{      margin:0;padding:0;    }    body{      width:100%;height:100%;background:black;    }    canvas{      width:800px;height:480px;outline:1px solid pink;position:absolute;      left:0;top:0;right:0;bottom:0;margin:auto;    }  </style></head><body><button>240x120</button><button>320x240</button><button>480x320</button><button>640x420</button><button>800x480</button><canvas id="canvasId" width="480" height="320">  Your browser does not support the canvas element.</canvas><script>  var canvas = document.getElementById('canvasId');  var context = canvas.getContext('2d');  var btns = document.getElementsByTagName('button');  var resolution = [    [240, 120],    [320, 240],    [480, 320],    [640, 420],    [800, 480]  ];  //canvas分辨率  var resolutionW = canvas.getAttribute('width');  var resolutionH = canvas.getAttribute('height');  //canvas大小  var sizeW = canvas.offsetWidth;  var sizeH = canvas.offsetHeight;  console.log(resolutionW);  console.log(resolutionH);  console.log(sizeW);  console.log(sizeH);  var img = new Image();  img.src = "http://img5.niutuku.com/phone/1301/0920/0920-niutuku.com-483082.jpg"; //這張圖片像素為800x480  img.onload = function() {    draw(3);    for (var i = 0; i < btns.length; i++) {      (function(i) {        btns[i].onclick = function() {          draw(i);        }      })(i);    }  }  function draw(i) {    canvas.setAttribute('width', resolution[i][0]);    canvas.setAttribute('height', resolution[i][1]);    context.clearRect(0, 0, sizeW, sizeH);    context.drawImage(img, 0, 0, sizeW, sizeH, 0, 0, resolution[i][0], resolution[i][1]);  }</script></body></html

總結

以上所述是小編給大家介紹的JS HTML圖片顯示Canvas 壓縮功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!

 



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金秀| 新干县| 宝丰县| 育儿| 寿宁县| 清河县| 庆城县| 永靖县| 威信县| 桃园市| 江北区| 荔浦县| 公主岭市| 多伦县| 苗栗市| 宿迁市| 沙湾县| 许昌市| 庆元县| 邵武市| 左贡县| 平山县| 柳州市| 类乌齐县| 五华县| 庆安县| 阜康市| 定南县| 新宾| 枞阳县| 天台县| 广丰县| 女性| 石嘴山市| 当阳市| 五河县| 綦江县| 辽阳县| 平阴县| 中方县| 鹤庆县|