微信小程序上传图片并等比列压缩到指定大小的实例代码


Posted in Javascript onOctober 24, 2019

微信小程序官方API中 wx.chooseImage() 是可以进行图片压缩的,可惜的是不能压缩到指定大小。

微信小程序上传图片并等比列压缩到指定大小的实例代码

实际开发中需求可能是压缩到指定大小:

原生js可以使用canvas来压缩,但由于微信小程序对canvas有封装,使得利用canvas来压缩图片有了一些区别:

代码放在了git:https://github.com/jonyellow/code-diary/tree/master/%E5%B0%8F%E7%A8%8B%E5%BA%8F/%E5%9B%BE%E7%89%87%E5%8E%8B%E7%BC%A9

直接上代码:

微信小程序上传图片并等比列压缩到指定大小的实例代码

微信小程序上传图片并等比列压缩到指定大小的实例代码

主函数:

微信小程序上传图片并等比列压缩到指定大小的实例代码

以上的三个函数可以写在一个公共的js文件里面 我是写在 common.js中的:

html:

微信小程序上传图片并等比列压缩到指定大小的实例代码

在html中需要添加个canvas标签,一般这个标签不让他出现在页面中,因为它的作用仅仅是压缩图片的工具:

<canvas class="canvas" canvas-id="canvas" :style="{width:cWidth+'px',height:cHeight+'px', visibility: 'hidden', 'position':'absolute', 'z-index': '-1', left: '-10000rpx',top:'-10000rpx'}"></canvas>

在methods中增加chooseImg方法:

微信小程序上传图片并等比列压缩到指定大小的实例代码

代码在实际项目中使用,能完成压缩图片到指定大小的需求。

总结

以上所述是小编给大家介绍的微信小程序上传图片并等比列压缩到指定大小的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
js的逻辑运算符 ||
May 31 Javascript
javascript break指定标签打破多层循环示例
Jan 20 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
Apr 11 Javascript
js/jquery判断浏览器的方法小结
Sep 02 Javascript
javascript中scrollTop详解
Apr 13 Javascript
javaScript中push函数用法实例分析
Jun 08 Javascript
js获取iframe中的window对象的实现方法
May 20 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
Jan 19 Javascript
jQuery HTML css()方法与css类实例详解
May 20 jQuery
解决nuxt 自定义全局方法,全局属性,全局变量的问题
Nov 05 Javascript
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
Vue中引入svg图标的两种方式
Jan 14 Vue.js
nest.js 使用express需要提供多个静态目录的操作方法
Oct 24 #Javascript
Vue 3.0双向绑定原理的实现方法
Oct 23 #Javascript
JavaScript判断数组类型的方法
Oct 23 #Javascript
Vue 2.0双向绑定原理的实现方法
Oct 23 #Javascript
p5.js绘制旋转的正方形
Oct 23 #Javascript
p5.js实现简单货车运动动画
Oct 23 #Javascript
p5.js实现故宫橘猫赏秋图动画
Oct 23 #Javascript
You might like
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
在字符串指定位置插入一段字符串的php代码
2010/02/16 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
php关联数组与索引数组及其显示方法
2018/03/12 PHP
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
javascript中的隐式调用
2018/02/10 Javascript
全站最详细的Vuex教程
2018/04/13 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
详解element-ui中表单验证的三种方式
2019/09/18 Javascript
js实现简单进度条效果
2020/03/25 Javascript
JavaScript枚举选择jquery插件代码实例
2020/11/17 jQuery
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
在Python中使用判断语句和循环的教程
2015/04/25 Python
python最长回文串算法
2018/06/04 Python
Pycharm+Scrapy安装并且初始化项目的方法
2019/01/15 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
英文自荐信
2013/12/15 职场文书
单位承诺书格式
2014/05/21 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
初中生毕业评语
2014/12/29 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby