10-微信小程序 图片 相机 二维码 动画相关API(实现选择相册、拍照、录像、动画)

10-微信小程序 图片 相机 二维码 动画相关API(实现选择相册、拍照、录像、动画)

文章目录

    • 10.1选择图片
      • wx.chooseImage(Object object)
      • object.success 回调函数
      • 代码
      • 效果
    • 10.2 预览图片
      • wx.previewImage(Object object)
      • 代码
      • 效果
    • 10.3 相机API
      • CameraContext wx.createCameraContext()
      • CameraContext
      • 效果
    • 10.4 二维码
      • wx.scanCode(Object object)
      • object.success 回调函数
      • 示例代码
      • 代码
      • 效果
    • 1.5 动画

10.1选择图片

wx.chooseImage(Object object)

功能描述: 从本地相册选择图片或使用相机拍照。

从基础库 2.21.0 开始,本接口停止维护,请使用 wx.chooseMedia 代替

以 Promise 风格 调用:支持

小程序插件:支持,需要小程序基础库版本不低于 1.9.6

微信 Windows 版:支持

微信 Mac 版:支持

官方文档

参数

Object object

属性类型默认值必填说明
countnumber9最多可以选择的图片张数
sizeTypeArray.[‘original’, ‘compressed’]所选的图片的尺寸
sourceTypeArray.[‘album’, ‘camera’]选择图片的来源
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

object.sizeType 的合法值

合法值说明
original原图
compressed压缩图

object.sourceType 的合法值

合法值说明
album从相册选图
camera使用相机

object.success 回调函数

参数

Object res

属性类型说明最低版本
tempFilePathsArray.图片的本地临时文件路径列表 (本地路径)
tempFilesArray.图片的本地临时文件列表1.2.0

res.tempFiles 的结构

结构属性类型说明
pathstring本地临时文件路径 (本地路径)
sizenumber本地临时文件大小,单位 B

代码

// pages/demo/index.js
Page({data: {},onLoad: function(options) {},/*** 选择图片*/chooseImage(){wx.chooseImage({count: 5,sizeType: ['original', 'compressed'],sourceType: ['album', 'camera'],success(res) {console.log(res.tempFilePaths);}})}
})

页面

<!-- pages/demo/index.wxml --><button bindtap="chooseImage" size='mini' type="primary">选择照片</button>

效果

以上代码做个测试,需要做真机调试如下图

真机调试->手机扫描->在手机上点击【选择照片】

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

10.2 预览图片

wx.previewImage(Object object)

功能描述: 在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。

以 Promise 风格 调用:支持

小程序插件:支持,需要小程序基础库版本不低于 1.9.6

微信 Windows 版:支持

微信 Mac 版:支持

官方文档

参数

Object object

属性类型默认值必填说明最低版本
urlsArray.需要预览的图片链接列表。2.2.3 起支持云文件ID。
showmenubooleantrue是否显示长按菜单。2.13.0
currentstringurls 的第一张当前显示图片的链接
referrerPolicystringno-referrerorigin: 发送完整的referrer; no-referrer: 不发送。格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本;2.13.0
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行

代码

wx.previewImage({current: '', // 当前显示图片的http链接urls: [] // 需要预览的图片http链接列表
})

完整代码

// pages/demo/index.js
Page({data: {},onLoad: function(options) {},/*** 选择图片*/chooseImage(){wx.previewImage({current: 'https://img-blog.csdnimg.cn/7d9ec09660304c248c2279d72ed9d243.png', // 当前显示图片的http链接urls: ['https://img-blog.csdnimg.cn/65256cf88e2b413b9eccda34aad5ecbb.png','https://img-blog.csdnimg.cn/d4a81724a53e4f3b85ac9bc2b49bd622.png'] // 需要预览的图片http链接列表})}})

效果

真机调试->手机扫描->在手机上点击【选择照片】如下图是个预览图片的效果

在这里插入图片描述

10.3 相机API

官方文档

CameraContext wx.createCameraContext()

基础库 1.6.0 开始支持,低版本需做兼容处理。

小程序插件:支持,需要小程序基础库版本不低于 1.9.6

微信 Windows 版:支持

微信 Mac 版:支持

相关文档: camera 组件介绍

功能描述

创建 camera 上下文 CameraContext 对象。

返回值

CameraContext

index.wxml:

<view class="page-body"><view class="page-body-wrapper"><camera device-position="back" flash="off" binderror="error" style="width: 100%; height: 300px;"></camera><view class="btn-area"><button type="primary" bindtap="takePhoto">拍照</button></view><view class="btn-area"><button type="primary" bindtap="startRecord">开始录像</button></view><view class="btn-area"><button type="primary" bindtap="stopRecord">结束录像</button></view><view class="preview-tips">预览</view><image wx:if="{{src}}" mode="widthFix" src="{{src}}"></image><video wx:if="{{videoSrc}}" class="video" src="{{videoSrc}}"></video></view>
</view>
/* pages/demo/index.wxss */
.preview-tips {margin: 20rpx 0;}.video {margin: 50px auto;width: 100%;height: 300px;}
// pages/demo/index.js
Page({onLoad() {this.ctx = wx.createCameraContext()},takePhoto() {this.ctx.takePhoto({quality: 'high',success: (res) => {this.setData({src: res.tempImagePath})}})},startRecord() {this.ctx.startRecord({success: (res) => {console.log('startRecord')}})},stopRecord() {this.ctx.stopRecord({success: (res) => {this.setData({src: res.tempThumbPath,videoSrc: res.tempVideoPath})}})},error(e) {console.log(e.detail)}
})

全局样式

/**app.wxss**/
.container {height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: space-between;padding: 200rpx 0;box-sizing: border-box;
}page {background-color: #F8F8F8;height: 100%;font-size: 32rpx;line-height: 1.6;
}.page-body {padding: 20rpx 0;
}.page-body-wrapper {display: flex;flex-direction: column;align-items: center;width: 100%;
}.btn-area {margin-top: 60rpx;box-sizing: border-box;width: 100%;padding: 0 30rpx;
}

效果

在这里插入图片描述

效果(需要在真机上测试)如下图

  • 拍照

在这里插入图片描述

  • 录像

在这里插入图片描述

10.4 二维码

官方文档

wx.scanCode(Object object)

基础库 1.0.0 开始支持,低版本需做兼容处理。

以 Promise 风格 调用:支持

小程序插件:支持,需要小程序基础库版本不低于 1.9.6

功能描述

调起客户端扫码界面进行扫码

参数

Object object

属性类型默认值必填说明最低版本
onlyFromCamerabooleanfalse是否只能从相机扫码,不允许从相册选择图片1.2.0
scanTypeArray.[‘barCode’, ‘qrCode’]扫码类型1.7.0
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数

Object res

属性类型说明
resultstring所扫码的内容
scanTypestring所扫码的类型
charSetstring所扫码的字符集
pathstring当所扫的码为当前小程序二维码时,会返回此字段,内容为二维码携带的 path
rawDatastring原始数据,base64编码

示例代码

// 允许从相机和相册扫码
wx.scanCode({success (res) {console.log(res)}
})// 只允许从相机扫码
wx.scanCode({onlyFromCamera: true,success (res) {console.log(res)}
})

代码

<!--index.wxml-->
<view class="container"><button type="primary" bindtap="scanCode">扫描二维码</button>
</view>
//index.js
//获取应用实例
const app = getApp()
Page({scanCode() {wx.scanCode({onlyFromCamera: true,success(res) {console.log(res)}})}
})

效果

在这里插入图片描述

效果(需要在真机上测试)如下图

这里有个简单的二维码来用真机调试,(当此二维码无法查看时,可以找别的二维码来进行测试)

在这里插入图片描述

手机扫描二维码得到如下结果,返回字符串“Hello World”

在这里插入图片描述

1.5 动画

官网文档

往下拉找到-【在开发者工具中预览效果】按提示步骤操作可以直接查看效果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
此专栏此阶段完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/235933.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站提示不安全?

随着互联网的普及和发展&#xff0c;网络安全问题日益严重。黑客攻击、数据泄露、恶意软件等问题层出不穷&#xff0c;给企业和个人带来了巨大的损失。在这个背景下&#xff0c;确保网站安全显得尤为重要&#xff0c;而使用SSL证书是解决这些问题的有效措施。 什么是SSL证书&am…

mockito加junit gd 单元测试 笔记

目录 一、简介1.1 单元测试的特点1.2 mock类框架使用场景1.3 常用mock类框架1.3.1 mockito1.3.2 easymock1.3.3 powermock1.3.4 JMockit 二、mockito的单独使用2.1 mock对象与spy对象2.2 初始化mock/spy对象的方式2.3 参数匹配2.4 方法插桩2.5 InjectMocks注解的使用断言工具 三…

SSM校园学习助手系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 校园学习助手系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模…

三、shell - 变量

目录 1、简介 1.1 变量的定义语法: 1.2 变量的定义需遵循的规则 1.3 变量的作用域 2、用户变量 2.1 定义变量 2.2 访问变量 2.3 变量的其他赋值方式 2.4 只读变量 2.5 删除变量 ​​​​​​​3、环境变量 ​​​​​​​3.1 常见的环境变量 ​​​​​​​3.2 自…

Logstash使用指南

介绍 Logstash是一个开源数据收集引擎&#xff0c;具有实时管道功能。它可以动态地将来自不同数据源的数据统一起来&#xff0c;并将数据标准化到你所选择的目的地。尽管Logstash的早期目标是搜集日志&#xff0c;现在它的功能已完全不只于此。任何事件类型都可以加入分析&…

【机器视觉技术栈】- 机器视觉基础

1.1 为什么采用机器视觉 人眼与机器视觉对比 人眼机器视觉精确性差&#xff0c;64灰度级&#xff0c;不能分辨小于100微米的目标强&#xff0c;256灰度级&#xff0c;可检测微米级目标速度慢&#xff0c;无法看清间隔小于40毫秒的运动目标快&#xff0c;快门时间可达10微秒适…

7.23 SpringBoot项目实战【评论】

文章目录 前言一、编写控制器二、编写服务层三、Postman测试前言 我们在 7.4 和 7.20 都曾实现过 评论列表,本文我们继续SpringBoot项目实战 评论 功能。逻辑实际相当Easy:一个学生 对 任意书 都可以 多次评论,但需要经过审核! 回顾一下 4.2 的数据库设计,学生图书评论表…

每日一练2023.11.30——验证身份【PTA】

题目链接 &#xff1a;验证身份 题目要求&#xff1a; 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c;5&a…

C语言--有三个字符串,要求找出其中长度最大的那一个

一.题目描述 有三个字符串&#xff0c;要求找出其中长度最大的那一个。 比如&#xff1a;输入三个字符串是&#xff1a; 第一个字符串:hello 第二个字符串&#xff1a;worldasd 第三个字符串&#xff1a;abcd 输出&#xff1a;最长的字符串是&#xff1a;worldasd 二.思路分析…

Echarts 设置数据条颜色 宽度

设置数据条颜色&#xff08;推荐&#xff09; let yData [{value: 500,time: 2012-11-12,itemStyle: //设置数据条颜色{normal: { color: red }}},{value: 454,time: 2020-5-17},{value: 544,time: 2022-1-22},{value: 877,time: 2013-1-30}, {value: 877,time: 2012-11-12}]…

近期知识点

aop (1) 要求利用AOP记录用户操作日志。内容包含以下信息&#xff1a;ip地址、用户名、请求的地址&#xff0c;请求的时间 &#xff08; 4 分&#xff09; &#xff08;2&#xff09;要求利用AOP记录用户操作日志&#xff0c;日志记录到文本文件。内容包含以下信息&#xff…

LeetCode(43)快乐数【哈希表】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 快乐数 1.题目 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1&#xff0c;也…