新闻、帮助、产品更新动态

最新的业界新闻,产品系统更新开发动态,帮助教程和活动发布

如何在小程序中实现拍照功能

发布日:2022-03-14 20:51       阅读数:

在小程序使用的过程中,难免会用到相机组件,本文将教大家配置入门小程序camera组件的使用,并自己制作一个小程序相机的demo出来。
 
在教程开始之前,需要搭建搭建好小程序的基础开发环境,关于如何配置,大家可以参考如何入门小程序开发这篇文章的入门教程。
 
相机组件的使用
小程序调用相机很简单,只用一行代码即可实现,修改你的index.wxml文件,为如下代码。
<camera style="width: 100%; height: 450px;"></camera>
当然这行代码仅仅实现了相机在小程序内显示,无法实现更多功能,我们可以参考官方文档来实现更多功能。

属性名

类型

默认值

说明

mode

String

normal

有效值为 normal, scanCode

device-position

String

back

前置或后置,值为front, back

flash

String

auto

闪光灯,值为auto, on, off

bindstop

EventHandle

 

摄像头在非正常终止时触发,如退出后台等情况

binderror

EventHandle

 

用户不允许使用摄像头时触发

bindscancode

EventHandle

 

在扫码识别成功时触发,仅在 mode="scanCode" 时生效

参考上表,我们来实现一个“镜子”的小功能,打开小程序,自动将摄像头转换为前置摄像头,然后默认打开闪光灯,修改代码如下。
<camera device-position="front" flash="on" style="width: 100%; height: 450px;"></camera>
通过上面的代码,就可以将小程序变为“镜子”。
 
拍照功能API的使用
我们已经学会了使用相机的基本组件的调用,但是在表中我们并没有看到拍照等功能的配置。为了前后端分离,小程序将拍照等功能封装成了API,我们需要在camera组件中调用相关函数才能实现拍照功能。关于拍照API的参数,我们可以参考下表。

属性

类型

默认值

是否必填

说明

quality

string

normal

成像质量

success

function

 

接口调用成功的回调函数

fail

function

 

接口调用失败的回调函数

complete

function

 

接口调用结束的回调函数(调用成功、失败都会执行)

参考上表,我们要用到JavaScript语言对相机API进行封装,首先,我们打开index.js文件,在page()中,写出下面的函数。
takePhoto(){
  
},
这是第一步,创建一个takePhoto函数,接下来,我们调用小程序相机的API。
takePhoto(){
  const ctx = wx.createCameraContext()
},
创建ctx对象,该对象为wx.createCameraContext()函数。接下来,需要调用createCameraContext()的takePhoto组件。
takePhoto(){
  const ctx = wx.createCameraContext()
  ctx.takePhoto({
    
  })
},
接下来,参考上表,我们设置我们所需要的参数。
takePhoto() {
    const ctx = wx.createCameraContext()
    ctx.takePhoto({
      quality: 'high',
      success: (res) => {
        this.setData({
          src: res.tempImagePath
        })
      }
    })
  },
这段代码中,我们定义了拍照的图像质量,并将图片文件存放在tempImagePath临时路径中,然后通过serData函数,将路径写给src变量,后面我们去调用这张图片的地址。后台逻辑处理功能已经写完了,接下来,我们需要去写前端界面,将图片展示出来。
 
打开index.wxml文件,我们修改代码如下。
<camera device-position="front" flash="on" style="width: 100%; height: 450px;"></camera>
<button type="primary" bindtap="takePhoto">拍照</button>
<image mode="widthFix" src="{{src}}"></image>
我们使用button按钮调用takePhoto函数进行拍照,然后将图片地址返回到src中显示。

编辑:航网科技   来源:腾讯云

本文版权归原作者所有 转载请注明出处

联系我们

客服部:深圳市龙华区龙胜商业大厦5楼B5区

业务部:深圳市南山区讯美科技广场2栋12楼1202

资质证书

  • Copyright © 2011-2020 www.hangw.com. All Rights Reserved 深圳航网科技有限公司 版权所有 增值电信业务经营许可证:粤B2-20201122 - 粤ICP备14085080号

    在线客服

    微信扫一扫咨询客服


    全国免费服务热线
    0755-36300002

    返回顶部