微信小程序实现图片压缩功能


Posted in Javascript onJanuary 26, 2018

小龙大哥的微信小程序在初始阶段相当于IE界的6,在这里给大家说一个刚趟过去的坑。

拍照的API。

wx.chooseImage({
 count: 1, // 默认9
 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
 success: function (res) {
 // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
 var tempFilePaths = res.tempFilePaths; 
 }
});

在上边,明确的给出大小的类型,本想省事,然并没有什么用…..
废话少说,给大家说下IOS和安卓中差别,拍照图片压缩的坑。

// 点击照相
 takePictures:function(){
 var that = this;
 wx.chooseImage({
 count: 1, // 默认9
 sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
 sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有
 success: function (res) {
 // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
 var tempFilePaths = res.tempFilePaths;

 that.setData({
 attendSuccessImg:tempFilePaths[0]
 });

 // 上传图片
 //判断机型
 var model = "";
 wx.getSystemInfo({
 success:function(res){
 model= res.model;
 }
 })
 if(model.indexOf("iPhone") <= 0){
 that.uploadFileOpt(that.data.attendSuccessImg);
 console.log(111111)
 }else{
 drawCanvas();

 }

 // 缩放图片
 function drawCanvas(){
 const ctx = wx.createCanvasContext('attendCanvasId');
 ctx.drawImage(tempFilePaths[0], 0, 0, 94, 96);
 ctx.draw();
 that.prodImageOpt();
 }
 }
 });
 },

 // 生成图片
 prodImageOpt:function(){
 var that = this;
 wx.canvasToTempFilePath({ 
 canvasId: 'attendCanvasId',
 success: function success(res) {
 that.setData({
 canvasImgUrl:res.tempFilePath
 });
 // 上传图片
 that.uploadFileOpt(that.data.canvasImgUrl);
 },
 complete: function complete(e) {
 }
 });
 },

再点击拍照后,IOS的进行了图片压缩功能,然而,安卓的依然是那么大,所以 在这过程中,我们需要判断下当前机型,然后执行canvas压缩。

上述代码,拿到即可用,但少一部分wxml中需要添加一个canvas标签。

进行接口调用。希望对大家有帮助。

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery学习3:操作元素属性和特性
Feb 07 Javascript
用Javascript评估用户输入密码的强度实现代码
Nov 30 Javascript
往光标所在位置插入值的js代码
Sep 22 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
浅谈jquery高级方法描述与应用
Oct 04 Javascript
jQuery实现按比例缩放图片的方法
Apr 29 jQuery
vue 点击按钮实现动态挂载子组件的方法
Sep 07 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
Sep 21 Javascript
微信小程序canvas开发水果老虎机的思路详解
Feb 07 Javascript
javascript 数组精简技巧小结
Feb 26 Javascript
vue学习笔记之给组件绑定原生事件操作示例
Feb 27 Javascript
vue祖孙组件之间的数据传递案例
Dec 07 Vue.js
js动态添加表格逐行添加、删除、遍历取值的实例代码
Jan 25 #Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
Jan 25 #Javascript
jquery根据name取得select选中的值实例(超简单)
Jan 25 #jQuery
用jquery获取select标签中选中的option值及文本的示例
Jan 25 #jQuery
利用js给datalist或select动态添加option选项的方法
Jan 25 #Javascript
基于vue.js无缝滚动效果
Jan 25 #Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 #Javascript
You might like
法兰绒滤网冲泡
2021/03/03 冲泡冲煮
php minixml详解
2008/07/19 PHP
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
图片在浏览器中底部对齐 解决方法之一
2011/11/30 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
Bootstrap CSS组件之按钮组(btn-group)
2016/12/17 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
JavaScript的setter与getter方法
2017/11/29 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
python处理二进制数据的方法
2015/06/03 Python
Python 爬虫模拟登陆知乎
2016/09/23 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
Python实现序列化及csv文件读取
2020/01/19 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
python安装sklearn模块的方法详解
2020/11/28 Python
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
澳大利亚最受欢迎的美发和美容在线商店:Catwalk
2018/12/12 全球购物
SQL语言面试题
2013/08/27 面试题
C#里面可以避免一个类被其他类继承么?如何?
2013/09/26 面试题
暑期社会实践感言
2014/02/25 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
教师个人总结范文
2015/02/11 职场文书
银行自荐信范文
2015/03/25 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
创业计划书之物流运送
2019/09/17 职场文书
浅析Django接口版本控制
2021/06/26 Python