html5 比例压缩图片大小,HTML5图片canvas等比例缩放后上传

该博客介绍了一个使用HTML5的canvas元素来实现图片等比例压缩的方法。当用户选择图片上传时,代码首先检查文件是否为图片类型,然后读取文件并将其绘制到canvas上,进行等比例缩放。根据图片尺寸,动态调整canvas大小以保持比例。最后,将压缩后的图片转换为base64编码并发送到服务器进行保存。在服务器端,接收到base64字符串后将其转化为字节数组,保存为JPEG格式的图片。
摘要由CSDN通过智能技术生成
图片等比例缩放后上传

$(function () {

function decodeUnicode(str) {

return unescape(unescape(str.replace(/\\u/g, '%u')));

}

$("#pic").change(function () {

var _this = $(this)[0], _file = _this.files[0], fileType = _file.type;

console.log(_file.size);

console.log(_file.type)

if (/image\/\w+/.test(fileType)) {

var fileReader = new FileReader();

fileReader.readAsDataURL(_file);

fileReader.onload = function (event) {

var result = event.target.result; //返回的dataURL

var image = new Image();

image.src = result;

image.onload = function () { //创建一个image对象,给canvas绘制使用

var cvs = document.createElement('canvas');

var scale = 1;

var tt = 1000; //只是示例,可以根据具体的要求去设定

if (this.width > tt || this.height > tt) {

if (this.width > this.height) {

scale = tt / this.width;

} else {

scale = tt / this.height;

}

}

cvs.width = this.width * scale;

cvs.height = this.height * scale; //计算等比缩小后图片宽高

var ctx =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值