Skip to content
This repository has been archived by the owner on May 8, 2021. It is now read-only.
曾浩 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 () {
            // 不管是成功失败,这里都会执行
        });
});

其他

演示地址

Clone this wiki locally