js 图片等比压缩并保留清新度

复制代码
function drawOnCanvas(file) {
    $.mobile.loading('show', {
        text: '图片上传中,请耐心等待...', //加载器中显示的文字
        textVisible: true, //是否显示文字
        theme: 'a',        //加载器主题样式a-e
        textonly: false,   //是否只显示文字
        html: "<div style=\"width:200px;\" align=\"center\"><img src=\"../assets/img/l1.gif\" /></div>"           //要显示的html内容,如图片等
    });

    var reader = new FileReader();

    reader.onload = function (e) {
        var dataURL = e.target.result,
            canvas = document.getElementById('canvas'),
            img = new Image(),
            context = canvas.getContext('2d');
        img.onload = function () {
            var size = 300;
            canvas.style.width = size + "px";
            canvas.style.height = size + "px";

            var scale = 3.125;
            canvas.width = Math.floor(size * scale);
            canvas.height = Math.floor(size * scale);

            context.scale(scale, scale);
            context.clearRect(0, 0, size, size);
            context.drawImage(this, 0, 0, size, size);
//            /*  canvas.toDataURL(type, args)
//              该方法能够将canvas转换为图像,图像是基于Base64编码的。如
//              果不指定两个参数,无参数调用该方法,转换的图像格式为png格式
//
//              •type:指定要转换的图像格式,如 image/png、image/jpeg等。
//              •args:可选参数。例如,如果type为image/jpeg,则args可以是
//              0.0和0.1之间的值,以指定图像的品质。
//例如,下面的代码将canvas中已绘制的内容在一个新的浏览器窗
//              口或选项卡中打开:
            
            var base64 = canvas.toDataURL('image/jpeg');

            $('#s').html(base64);

            //隐藏加载器
            $.mobile.loading('hide');
        };
        img.src = dataURL;  //把图像给img对象,在img 对象onload事件中进行绘制到canvas(相关压缩,保存,都可以在这里进行操作)
    };
    reader.readAsDataURL(file);
};
function change() {
    var input = document.getElementById('cameraInput')
    var file = input.files[0]; drawOnCanvas(file);
};
复制代码

 

posted @   Nina  阅读(528)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2007-01-12 vs 2005應用2003框架
点击右上角即可分享
微信分享提示