canvas转换图像格式及尺寸

1 ///用于上传的图片 
2 <input type="file" name="imageFile" id="imageFile" />
3 //压缩按钮
4      <input type="button"  οnclick="change()" value="压缩图"/>

javaScripts处理:

window.change = function () {
              var oFile = document.getElementById('imageFile').files[0];    //读取文件
              var reader = new FileReader(),
                  img = new Image();
              ///加载地址
              reader.readAsDataURL(oFile);
              reader.onload = function () {        //文件加载完成
                  var url = reader.result;
                  img.src = url;
              };
              img.onload = function () {
                  init();
              }
              function init() {
                  var w = img.width, h = img.height;
                  var canvas = document.createElement("canvas");
                  var ctx = canvas.getContext('2d');
                  //压缩比例为3
                  canvas.width = w / 3;
                  canvas.height = h / 3;
                  //将图片转化为canvas;并显示出来
                  ctx.drawImage(img, 0, 0, w, h, 0, 0, canvas.width, canvas.height);

                  var quality = 0.3;        //图片的质量,这里设置的是0.3
                  var data = canvas.toDataURL("image/png"); //获取画布图片,并且要png格式
               //下载图片的两个方法
               //window.location.href = data;   
                  //saveFile(data, new Date().getTime() + ".png");
                  document.body.appendChild(canvas);
                  
              }

             //下载图片
              function saveFile(data, filename) {
                  var save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
                  save_link.href = data;
                  save_link.download = filename;

                  var event = document.createEvent('MouseEvents');
                  event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
                  save_link.dispatchEvent(event);
              };
          }

 

转载于:https://www.cnblogs.com/x0216u/p/7458474.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值