This repository has been archived by the owner on May 8, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 982
Home
曾浩 edited this page Aug 9, 2015
·
11 revisions
lrz(file, [options]);
-
file
通过input:file
得到的文件,或者直接传入图片路径 -
[options]
这个参数允许忽略-
options.width {Number}
图片最大不超过的宽度,默认为原图宽度,高度不设时会适应宽度。 -
options.height {Number}
同上 -
options.quality {Number}
图片压缩质量,取值 0 - 1,默认为0.7
-
返回值是一个promise
对象
-
then(rst)
-
rst.base64
生成后的图片base64,后端可以处理此字符串为图片 -
rst.base64Len
生成后的图片的大小,后端可以通过此值来校验是否传输完整
-
-
catch(err)
-
always()
document.querySelector('input').addEventListener('change', function () {
// this.files[0] 是用户选择的文件
lrz(this.files[0], {width: 1024})
.then(function (rst) {
// 把处理的好的图片给用户看看呗
var img = new Image();
img.src = rst.base64;
img.onload = function () {
document.body.appendChild(img);
};
return rst;
})
.then(function (rst) {
// 这里该上传给后端啦
// 伪代码:ajax(rst.base64)..
return rst;
})
.then(function (rst) {
// 如果您需要,一直then下去都行
// 因为是Promise对象,可以很方便组织代码 \(^o^)/~
})
.catch(function (err) {
// 万一出错了,这里可以捕捉到错误信息
// 而且以上的then都不会执行
alert(err);
})
.always(function () {
// 不管是成功失败,这里都会执行
});
});