惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
V
Visual Studio Blog
Stack Overflow Blog
Stack Overflow Blog
A
About on SuperTechFans
博客园 - 司徒正美
D
DataBreaches.Net
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
MyScale Blog
MyScale Blog
I
InfoQ
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
Google DeepMind News
Google DeepMind News
Recent Announcements
Recent Announcements
小众软件
小众软件
G
Google Developers Blog
博客园 - 【当耐特】
U
Unit 42
美团技术团队
B
Blog
D
Docker
Blog — PlanetScale
Blog — PlanetScale

博客园 - Nina

从今天开始进行物流面的了解以及分享 Oracle client端的日期格式设定处理 未能找到 CodeDom 提供程序类型“Microsoft.VisualC.CppCodeProvider, CppCodeProvider--- 问题处理 oracle11g升19c之ORA-00904 WM_CONCAT invalid identifie排故 读【技术人员需要有产品思维吗】摘抄 张一鸣:我的大学四年收获及工作感悟 ORACLE修改表空间方法 js parseFloat 0.1 精度问题 IIS 设置重定向 System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本 fiddler配置夜神模拟器 如何快速接手一个新系统 谷歌浏览器设置跨域失败 Validation of viewstate MAC failed 解决办法--zt 如何查看Oracle客户端版本及位数(Windows系统)(转) 程序员集锦 如何最快速地适应新的工作 Oracle 03113 win10 优化
js 图片等比压缩并保留清新度
Nina · 2021-01-12 · via 博客园 - Nina
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);
};