微信小程序开发之相册选择和拍照详解及实例代码


Posted in Javascript onFebruary 22, 2017

微信小程序 拍照和相机选择详解

前言:

小程序中获取图片可通过两种方式得到,第一种是直接打开微信内部自己的样式,第一格就是相机拍照,后面是图片,第二种是弹框提示用户是要拍照还是从相册选择,下面一一来看。

选择相册要用到wx.chooseImage(OBJECT)函数,具体参数如下:

微信小程序开发之相册选择和拍照详解及实例代码

直接来看打开相机相册的代码:

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

 },




})

方法一效果图如下:

微信小程序开发之相册选择和拍照详解及实例代码

个人认为第二种用户体验要好一点,效果如下:

微信小程序开发之相册选择和拍照详解及实例代码

点击获取弹框提示,代码如下:

Page({
 data: {
  tempFilePaths: ''
 },
 onLoad: function () {
 },
 chooseimage: function () {
  var that = this;
  wx.showActionSheet({
   itemList: ['从相册中选择', '拍照'],
   itemColor: "#CED63A",
   success: function (res) {
    if (!res.cancel) {
     if (res.tapIndex == 0) {
      that.chooseWxImage('album')
     } else if (res.tapIndex == 1) {
      that.chooseWxImage('camera')
     }
    }
   }
  })

 },

 chooseWxImage: function (type) {
  var that = this;
  wx.chooseImage({
   sizeType: ['original', 'compressed'],
   sourceType: [type],
   success: function (res) {
    console.log(res);
    that.setData({
     tempFilePaths: res.tempFilePaths[0],
    })
   }
  })
 }


})

文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 wx.saveFile,在小程序下次启动时才能访问得到。

布局文件:

<button style="margin:30rpx;" bindtap="chooseimage">获取图片</button>
<image src="{{tempFilePaths }}" catchTap="chooseImageTap" mode="aspectFit" style="width: 100%; height: 450rpx" />

官方文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-picture.html

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jquery里的each使用方法详解
Dec 22 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
Oct 17 Javascript
js读取cookie方法总结
Oct 31 Javascript
JavaScript中神奇的call()方法
Mar 12 Javascript
jQuery 弹出层插件(推荐)
May 24 Javascript
jquery中的常见问题及快速解决方法小结
Jun 14 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
Nov 18 Javascript
EasyUI学习之Combobox下拉列表(1)
Dec 29 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
Apr 06 Javascript
详解vue嵌套路由-params传递参数
May 23 Javascript
浅析node.js的模块加载机制
May 25 Javascript
微信打开网址添加在浏览器中打开提示的办法
May 20 Javascript
js仿微博动态栏功能
Feb 22 #Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
Feb 22 #Javascript
svg动画之动态描边效果
Feb 22 #Javascript
jQuery实现的简单拖动层示例
Feb 22 #Javascript
Bootstrap 3 进度条的实现
Feb 22 #Javascript
easy ui datagrid 从编辑框中获取值的方法
Feb 22 #Javascript
canvas 绘制圆形时钟
Feb 22 #Javascript
You might like
apache mysql php 源码编译使用方法
2012/05/03 PHP
php异常处理使用示例
2014/02/25 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
PHP实现加强版加密解密类实例
2015/07/29 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
简单了解python模块概念
2018/01/11 Python
python的继承知识点总结
2018/12/10 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
2020/06/02 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
创意爱尔兰礼物:Creative Irish Gifts
2020/01/29 全球购物
一套软件测试笔试题
2014/07/25 面试题
EJB的基本架构
2016/09/22 面试题
给排水工程师岗位职责
2013/11/21 职场文书
党员干部承诺书范文
2014/03/25 职场文书
数学教师求职信范文
2015/03/20 职场文书
幼儿园辞职信
2015/05/13 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书