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


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与asp.net(c#)互相调用方法
Dec 13 Javascript
Javascript Object 对象学习笔记
Dec 17 Javascript
js获取json元素数量的方法
Jan 27 Javascript
JS实现窗口加载时模拟鼠标移动的方法
Jun 03 Javascript
用js编写的简单的计算器代码程序
Aug 04 Javascript
jQuery实现验证年龄简单思路
Feb 24 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
Jun 05 jQuery
vue组件之间通信方式实例总结【8种方式】
Feb 22 Javascript
layui操作列按钮个数和文字颜色的判断实例
Sep 11 Javascript
JavaScript实现背景自动切换小案例
Sep 27 Javascript
vue el-tree 默认展开第一个节点的实现代码
May 15 Javascript
vue+echarts实现动态折线图的方法与注意
Sep 01 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和ACCESS写聊天室(四)
2006/10/09 PHP
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
2017/03/15 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
Jquery插件写法笔记整理
2012/09/06 Javascript
百度地图api应用标注地理位置信息(js版)
2013/02/01 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
2016/08/17 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
2017/07/13 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
Python版的文曲星猜数字游戏代码
2013/09/02 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
python中get和post有什么区别
2020/06/19 Python
windows支持哪个版本的python
2020/07/03 Python
python 三种方法提取pdf中的图片
2021/02/07 Python
数控技术与应用毕业生自荐信
2013/09/24 职场文书
物流仓管员工作职责
2014/01/06 职场文书
行政撤诉申请书
2015/05/18 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
小学副班长竞选稿
2015/11/21 职场文书
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技