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


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 相关文章推荐
js关闭模态窗口刷新父页面或跳转页面
Dec 13 Javascript
JavaScript获取图片真实大小代码实例
Sep 24 Javascript
JS判断客服QQ号在线还是离线状态的方法
Jan 13 Javascript
AngularJS ng-template寄宿方式用法分析
Nov 07 Javascript
Vue-router 类似Vuex实现组件化开发的示例
Sep 15 Javascript
详解vue组件基础
May 04 Javascript
JS Generator 函数的含义与用法实例总结
Apr 08 Javascript
微信小程序实现上传照片代码实例解析
Aug 04 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
Dec 03 Javascript
在vue项目中封装echarts的步骤
Dec 25 Vue.js
React服务端渲染原理解析与实践
Mar 04 Javascript
JavaScript实现一键复制内容剪贴板
Jul 23 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 Static关键字实用方法
2010/06/04 PHP
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
mysql总结之explain
2012/02/27 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
PDO::prepare讲解
2019/01/29 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
2019/04/02 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
图片之间的切换
2006/06/26 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
js循环改变div颜色具体方法
2013/06/25 Javascript
zTree插件之多选下拉菜单实例代码
2013/11/06 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
Django接受前端数据的几种方法总结
2016/11/04 Python
python实现八大排序算法(1)
2017/09/14 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
在Python中增加和插入元素的示例
2018/11/01 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
酒店开业策划方案
2014/06/02 职场文书
电子商务专业自荐信
2014/06/02 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
感谢信的格式
2015/01/21 职场文书
驳回起诉裁定书
2015/05/19 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
导游词之峨眉乐山/兵马俑/北京故宫御花园
2019/09/03 职场文书