博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
无组件客户端js图片压缩
阅读量:4957 次
发布时间:2019-06-12

本文共 2287 字,大约阅读时间需要 7 分钟。

1 
2

上传您的约会照片,一张合影、一张票据哦!

3
4
5
6
7
8
9
10
11

正在上传...

12
1 var photo = $('#photo'); 2  3 function isCanvasSupported(){ 4     var elem = document.createElement('canvas'); 5     return !!(elem.getContext && elem.getContext('2d')); 6 } 7  8 photo.on('change', function(event){ 9     if(!canvasSupported){10         return;11   }12       13     compress(event, function(base64Img){14       $.ajax({15       'url' : '/?s=free/upload',16       'type' : 'post',17       'data' : {'base64Img' : base64Img},18             'success' : function(ret){19                      //拿到php传过来的图片地址20         }21      });22    });23 });24 25 function compress(event, callback){26     var file = event.currentTarget.files[0];27     var reader = new FileReader();28 29     reader.onload = function (e) {30 31         var image = $('');32         image.on('load', function () {33              var square = 700;34              var canvas = document.createElement('canvas');35 36              canvas.width = square;37              canvas.height = square;38 39              var context = canvas.getContext('2d');40              context.clearRect(0, 0, square, square);41              var imageWidth;42              var imageHeight;43              var offsetX = 0;44              var offsetY = 0;45 46             if (this.width > this.height) {47                   imageWidth = Math.round(square * this.width / this.height);48                   imageHeight = square;49                  offsetX = - Math.round((imageWidth - square) / 2);50            } else {51                  imageHeight = Math.round(square * this.height / this.width);52                  imageWidth = square; 53                  offsetY = - Math.round((imageHeight - square) / 2); 54            }55 56             context.drawImage(this, offsetX, offsetY, imageWidth, imageHeight);57             var data = canvas.toDataURL('image/jpeg');58             callback(data);59          });60 61           image.attr('src', e.target.result);62        };63  64      reader.readAsDataURL(file);65 }

js通过html5里面的canvas实现客户端压缩图片功能

转载于:https://www.cnblogs.com/elysian/p/6230169.html

你可能感兴趣的文章
设计移动web
查看>>
[00030]-[2015-09-26]-[00]-[DLL注入应用案例---修改任务管理器的实现]
查看>>
3ds的fbi无线传输
查看>>
Windows下ADT环境搭建
查看>>
[luogu4037 JSOI2008] 魔兽地图 (树形dp)
查看>>
不重新编译DLL,让FCKEditor支持附件上传
查看>>
redux middleware 源码分析
查看>>
CPS_数据预处理_每日记录
查看>>
sql 查询最近30分钟或者自定义时间数据
查看>>
冲刺周期一--站立会议02
查看>>
mysql数据库插入year时
查看>>
如何用MoveIt快速搭建机器人运动规划平台?
查看>>
PopupWindow之showAtLocation,showAsDropDown
查看>>
3470. 【NOIP2013模拟联考8】最短路(path) (Standard IO)
查看>>
昂贵的聘礼 最短路 dijkstra
查看>>
引蜘蛛文章20181118134005
查看>>
Oracle分页sql
查看>>
flask渲染模板时报错TypeError: 'UnboundField' object is not callable --
查看>>
dubbo+rest 之 helloworld(二)
查看>>
PHP 导出csv
查看>>