博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
canvas 压缩图片的大小
阅读量:6006 次
发布时间:2019-06-20

本文共 1112 字,大约阅读时间需要 3 分钟。

使用 signature_pad canvas 库生成的图片太大。但又没有提供方法来压缩。

当然这是根据你canvas的画布大小决定的,某些原因导致我的画布就得是那么大。

随随便便一个图片转化为base64 之后就是200kb-300kb。所以得想办法压缩。

思路就是把生成的base64 图片再一次放入canvas 中 ,然后等比缩小4倍即可。

save () {    if (this.$refs.signature.isEmpty() === false) {        // https://github.com/WangShayne/vue-signature        var png = this.$refs.signature.save();        this.compressedPicture(png, _ => {            console.log(_);        })    }},compressedPicture (url, callback) {    var canvas = document.createElement('canvas');     var ctx = canvas.getContext('2d');     var img = new Image;     img.onload = function(){        console.log(img.width);        var width = img.width;        var height = img.height;        // 按比例压缩4倍        var rate = (width < height ? width / height : height / width) / 4;        canvas.width = width * rate;         canvas.height = height * rate;         ctx.drawImage(img, 0, 0, width, height, 0, 0, width * rate, height * rate);         var dataURL = canvas.toDataURL('image/jpeg');         callback.call(this, dataURL);         canvas = null;         console.log(dataURL);    };    img.src = url},

 

 

 

转载地址:http://gmsmx.baihongyu.com/

你可能感兴趣的文章
C# this关键字的四种用法(转)
查看>>
effective c/C++
查看>>
Ubuntu12.04更新openssl使用源码
查看>>
责任链模式
查看>>
谈赌博心理
查看>>
中国各个省市县的人口统计,echart展示
查看>>
纪念一下雅虎中国 - 关闭社区服务的通知截图
查看>>
Beta 冲刺 (6/7)
查看>>
Kmail身份验证组件
查看>>
Drying poj3104(二分)
查看>>
第三章:基本HTML结构
查看>>
easyui_validatebox常用验证
查看>>
面向对象的故事~数据底层操作告诉了我们接口,抽象类,继承与多态性的使用...
查看>>
数据结构~二叉树
查看>>
PHP和.NET通用的加密解密函数类,均使用3DES加解密 .
查看>>
三生万物:决策树
查看>>
Javascript计算器(Calculator) 利用Javascript计算形如“(8*(2*(2+3)*2)*10)*10 ”表达式的值...
查看>>
java学习(二)对象与类
查看>>
win10去除快捷方式小箭头
查看>>
localStorage 存储
查看>>