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


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实现上传图片之上传前预览图片
Mar 25 Javascript
sails框架的学习指南
Dec 22 Javascript
jquery获取多个checkbox的值异步提交给php
Jul 07 Javascript
JavaScript的String字符串对象常用操作总结
May 26 Javascript
jQuery的each循环用法简单示例
Jun 12 Javascript
利用jquery实现实时更新歌词的方法
Jan 06 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
Mar 17 Javascript
Vue实现数字输入框中分割手机号码的示例
Oct 10 Javascript
JS插件clipboard.js实现一键复制粘贴功能
Dec 04 Javascript
微信小程序-form表单提交代码实例
Apr 29 Javascript
Vue 列表上下过渡效果的实例代码
Jun 25 Javascript
js滚轮事件 js自定义滚动条的实现
Jan 18 Javascript
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
Session的工作方式
2006/10/09 PHP
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
golang与PHP输出excel示例
2016/07/22 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
为指定元素增加样式的js代码
2009/12/09 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
jQuery实现每隔几条元素增加1条线的方法
2016/06/27 Javascript
JavaScript中push(),join() 函数 实例详解
2016/09/06 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
js面向对象编程总结
2017/02/16 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
python3.5仿微软计算器程序
2020/03/30 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
django使用xadmin的全局配置详解
2019/11/15 Python
全网首秀之Pycharm十大实用技巧(推荐)
2020/04/27 Python
python math模块的基本使用教程
2021/01/16 Python
别名指示符是什么
2012/10/08 面试题
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
《山谷中的谜底》教学反思
2014/04/26 职场文书
行政助理岗位职责
2015/02/10 职场文书
社区志愿服务活动感想
2015/08/07 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书
创业计划书之家教中心
2019/09/25 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang