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


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 相关文章推荐
深入认识JavaScript中的函数
Jan 22 Javascript
一款JavaScript压缩工具:X2JSCompactor
Jun 13 Javascript
jQuery 事件队列调整方法
Sep 18 Javascript
javaScript 简单验证代码(用户名,密码,邮箱)
Sep 28 Javascript
js导航栏单击事件背景变换示例代码
Jan 13 Javascript
使用GruntJS构建Web程序之合并压缩篇
Jun 06 Javascript
jQuery下拉友情链接美化效果代码分享
Aug 26 Javascript
JavaScript事件处理的方式(三种)
Apr 26 Javascript
js图片轮播插件的封装
Jul 21 Javascript
使用Node.js实现RESTful API的示例
Aug 01 Javascript
layui实现数据表格table分页功能(ajax异步)
Jul 27 Javascript
微信小程序实现吸顶特效
Jan 08 Javascript
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
PHP开发文件系统实例讲解
2006/10/09 PHP
JavaScript效率调优经验
2009/06/04 Javascript
javascript 操作文件 实现方法小结
2009/07/02 Javascript
基于jquery的滚动新闻列表
2010/06/19 Javascript
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
无阻塞加载脚本分析[全]
2011/01/20 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
2020/06/04 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
Python实现抓取页面上链接的简单爬虫分享
2015/01/21 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
举例讲解Python常用模块
2019/03/08 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
使用celery和Django处理异步任务的流程分析
2020/02/19 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
如何获得EntityManager
2014/02/09 面试题
营销主管自我评价怎么写
2013/09/19 职场文书
公司节能减排倡议书
2014/05/14 职场文书
音乐之声观后感
2015/06/04 职场文书
学雷锋主题班会教案
2015/08/13 职场文书
python在package下继续嵌套一个package
2022/04/14 Python