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


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 相关文章推荐
Valerio 发布了 Mootools
Sep 23 Javascript
用js实现的仿sohu博客更换页面风格(简单版)
Mar 22 Javascript
jQuery的each终止或跳过示例代码
Dec 12 Javascript
js继承call()和apply()方法总结
Dec 08 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
Dec 20 Javascript
javascript查询字符串参数的方法
Jan 28 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
May 10 Javascript
JS实现双击内容变为可编辑状态
Mar 03 Javascript
Angular简单验证功能示例
Dec 22 Javascript
浅谈vuex的基本用法和mapaction传值问题
Nov 08 Javascript
通过js随机函数Math.random实现乱序
May 19 Javascript
vue基于better-scroll仿京东分类列表
Jun 30 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
推荐个功能齐全的发送PHP邮件类
2007/01/03 PHP
php实现的支持断点续传的文件下载类
2014/09/23 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
javascript实现yield的方法
2013/11/06 Javascript
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
JS对HTML表格进行增删改操作
2016/08/22 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
Vue使用Ref跨层级获取组件的步骤
2021/01/25 Vue.js
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
transform python环境快速配置方法
2018/09/27 Python
python用match()函数爬数据方法详解
2019/07/23 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
应聘医学检验人员自荐信
2013/09/27 职场文书
实习教师自我鉴定
2013/12/12 职场文书
幼儿园家长会欢迎词
2014/01/09 职场文书
安全生产检讨书
2014/01/21 职场文书
园林系毕业生求职信
2014/06/23 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python