Compressor.js 图片压缩及方向修正

问题背景

现在用手机拍照上传图片的应用场景越来越多,但是手机拍照的图片现在都过大,十几兆的都不在少数,最关键的一点手机拍照的方向不同,图片最后显示出来的方向也是千奇百怪。

解决方案

自己造轮子那是不可能的,成熟的轮子那么多,今天我们就来用Compressor.js这个插件来实现我们的需求

代码演示

// 这里用layer插件做弹窗
const upload = $('#upload');
let files = [];
upload.on('change', function (e) {
    // 这里需要做一个取消判断 避免报错
    if (e.currentTarget.files.length <= 0) {
        return false;
    }
    // 展开菊花
    const load = layer.load(2);
    // 提取文件
    const file = e.currentTarget.files[0];
    // 开始压缩
    new Compressor(file, {
        quality: 0.6, // 压缩质量 可以查看文档获取明细
        success(result) { 
            // 成功后上传
            const fd = new FormData();
            fd.append('file', result);
            $.ajax({
                url: '/api/Upload/PostImages',
                type: 'post',
                processData: false,
                contentType: false,
                data: fd,
                success: function (res) {
     // 本地连接
                    const id = window.URL.createObjectURL(result);
                    files.push({
                        id: id,
                        file: result, // 保存文件索引
                        url: res.Url // 服务器返回的云端连接
                    });
                    layer.close(load);
                },
                error: function (err) { // 失败
                    layer.close(load);
                    layer.alert(`code:${err.status}${err.responseText}`, { title: '发生错误,请稍后重试!' });
                }
            });
        },
        error(err) {
            layer.close(load); // 失败
            layer.alert(`图片文件压缩失败`, { title: '发生错误,请稍后重试!' });
        }
    });
});

更多应用,请访问官网

Compressor.js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值