登录  /  注册
博主信息
博文 38
粉丝 1
评论 0
访问量 60980
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
上传压缩图片
Dai的博客
原创
1103人浏览过
/**
 * 图片压缩,默认同比例压缩
 * @param {Object} f
 *   图片文件
 * @param {Object} obj
 *   obj 对象 有 width, height, quality(0-1)
 * @param {Object} callback
 *   回调函数有一个参数,base64的字符串数据
 */
function coursePptChange(f,obj, callback){
    var MyTest = f.files[0];
    var reader = new FileReader();
    reader.readAsDataURL(MyTest);
    reader.onload = function(theFile) {
        var img = new Image();
        img.src = theFile.target.result;
        img.onload = function(){
            var that = this;
            console.log(that.length);
            // 默认按比例压缩
            var w = that.width,
                h = that.height,
                scale = w / h;
            w = obj.width || w;
            h = obj.height || (w / scale);
            var quality = 0.1;  // 默认图片质量为0.7
            //生成canvas
            var canvas = document.createElement('canvas');
            var ctx = canvas.getContext('2d');
            // 创建属性节点
            var anw = document.createAttribute("width");
            anw.nodeValue = w;
            var anh = document.createAttribute("height");
            anh.nodeValue = h;
            canvas.setAttributeNode(anw);
            canvas.setAttributeNode(anh);
            ctx.drawImage(that, 0, 0, w, h);
            // 图像质量
            if(obj.quality && obj.quality <= 1 && obj.quality > 0){
                quality = obj.quality;
            }
            // quality值越小,所绘制出的图像越模糊
            var base64 = canvas.toDataURL('image/jpeg', quality );
            // 回调函数返回base64的值
            callback(base64);
        }
    };
}
// 调用函数处理图片      
// coursePptChange(this, {
//     // 注意:在pc端可以用绝对路径或相对路径,移动端最好用绝对路径
//     width : 200
// }, function(base){
//     //直接将获取到的base64的字符串,放到一个image标签中就可看到测试后的压缩之后的样式图了
//     console.log(base.length);
//     document.getElementById("faceSrc").src = base;
//     console.log("压缩后:" + base.length / 1024 + " " + base);
// })


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学