zoukankan      html  css  js  c++  java
  • 图片采用base64压缩,可以以字符串的形式传送base64给服务端转存为图片

    (function () {
        var coverImage = document.querySelector('<div id="coverImage">file</div>');
        //图片压缩
        coverImage.onchange = function () {
            lrz(this.files[0], { 640}, function (results) {
                
                // 你需要的数据都在这里,可以以字符串的形式传送base64给服务端转存为图片。
                var base64 = results.base64;
                function base64UrlToBlob(base64){
                    var bytes=window.atob(base64.split(',')[1]);        //去掉url的头,并转换为byte
                    //处理异常,将ascii码小于0的转换为大于0
                    var ab = new ArrayBuffer(bytes.length);
                    var ia = new Uint8Array(ab);
                    for (var i = 0; i < bytes.length; i++) {
                        ia[i] = bytes.charCodeAt(i);
                    }
                    return new Blob( [ab] , {type : 'image/jpg'});    //return Blob对象
                }
                var formData = new FormData($("#toPic")[1]);
                var blob = base64UrlToBlob(base64);
                console.log(blob);
                formData.append("coverImage",blob);
                $.ajax({
                    url: "xxx",
                    type: "POST",
                    data: formData,
                    dataType: "json",
                    contentType:false,
                    processData: false,         
                    success: function (json) {
                        console.log(json);
                    },
                });
                setTimeout(function () {
                    demo_report('预压的图片', base64, base64.length * 0.5);
                }, 100);
                
            });
        };
    })();
     (function () {
        var coverImage = document.querySelector('<div id="coverImage">file</div>');
        //图片压缩
        coverImage.onchange = function () {
            lrz(this.files[0], { 640}, function (results) {
            
                // 你需要的数据都在这里,可以以字符串的形式传送base64给服务端转存为图片。
                var base64 = results.base64;
                function base64UrlToBlob(base64){
                    var bytes=window.atob(base64.split(',')[1]);        //去掉url的头,并转换为byte
                    //处理异常,将ascii码小于0的转换为大于0
                    var ab = new ArrayBuffer(bytes.length);
                    var ia = new Uint8Array(ab);
                    for (var i = 0; i < bytes.length; i++) {
                        ia[i] = bytes.charCodeAt(i);
                    }
                    return new Blob( [ab] , {type : 'image/jpg'});    //return Blob对象
                }
                var formData = new FormData($("#toPic")[1]);
                var blob = base64UrlToBlob(base64);
                console.log(blob);
                formData.append("coverImage",blob);
                $.ajax({
                    url: "xxx",
                    type: "POST",
                    data: formData,
                    dataType: "json",
                    contentType:false,
                    processData: false,         
                    success: function (json) {
                        console.log(json);
                    },
                });
                setTimeout(function () {
                    demo_report('预压的图片', base64, base64.length * 0.5);
                }, 100);
                
            });
        };
    })();

    作者:freddyhuang
    出处:https://www.cnblogs.com/freddyhuang
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Swing 顶层容器
    创建第一个界面程序
    SWING
    通俗解释高中生能听懂的SVM本质和原理
    [初学者入门]任何机器学习套路?逻辑回归是什么?要有哪些未知参数待求解?如何优化?梯度下降是什么?如何用梯度下降
    贝叶斯公式在机器学习中有什么用,实例讲解Python实现朴素贝叶斯分类器
    通俗易懂适合初学者的机器学习实战(1):k- Nearest Neighbor (k个最近的邻居)KNN算法
    Python从0开始实现Numpy矩阵库,拒绝掉包侠,学习造轮子
    99%的人都会忽略的Python易错点总结
    遇到问题,有哪些有效的分析方法?
  • 原文地址:https://www.cnblogs.com/freddyhuang/p/5988781.html
Copyright © 2011-2022 走看看