微信小程序实现拍照功能

 更新时间:2022年04月13日 15:00:34   作者:我是来写bug的吧  
这篇文章主要为大家详细介绍了微信小程序实现拍照功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

小程序实现一个拍照功能,亲测可用。

页面的样式都是我自己写的,当然你们也可以自己排版写样式。下面一共有三个按钮,返回按钮、拍照按钮、切换摄像头按钮。

首先相机页面是通过wx:if来让其隐藏的,通过点击我们页面的拍照按钮来使条件为true,从而让我们的相机页面显示出来。然后我这里写了三个按钮,一个是返回按钮,一个是点击快门拍照的按钮,一个是摄像头的前置摄像头和后置摄像头的转换按钮。 

index.wxml

<camera device-position="{{cameraPos}}" wx:if="{{showCamera}}">
  <view class="CameraOptions">
    <view class="takePicBtn">
       <!-- 摄像头的返回按钮 -->
       <cover-image class="confirm" src="" bindtap="goBack"></cover-image>
       <!-- 照相的按钮 -->
       <cover-view bindtap="getPhoto"></cover-view>
       <!-- 摄像头的前后转换按钮 -->
       <cover-image class="switch" src="" bindtap='changePos'></cover-image>
   </view>
  </view>
</camera>

cover-view:

覆盖在原生组件之上的文本视图,可覆盖的原生组件包括:map(地图)、video(视频)、canvas(画布)、camera(系统相机)、live-pusher(实时音视频播放),只支持嵌套 cover-view、cover-image,可在 cover-view 中使用 button。

cover-image:

覆盖在原生组件之上的图片视图,可覆盖的原生组件同cover-view,支持覆盖在cover-view里。

device-position:

是用来切换前置摄像头还是后置摄像头,front是前置摄像头,back是后置摄像头

index.js

// 照相
  getPhoto() {
    // c创建相机上下文对象,获取唯一的相机对象
    var context = wx.createCameraContext()
    // 照相功能
    context.takePhoto({
      quality: "high",
      success: res => {
        // 照相成功的回调
        console.log(res);  // 图片的信息
        this.setData({
          // 隐藏相机
          //  showCamera:false,
          imageUrl: res.tempImagePath,
          imgwidth: res.width,
          imgheight: res.height
        })
        console.log(this.data.imageUrl)
      },
      fail: () => {
        wx.showToast({
          title: '出现错误',
        })
      }
    })
  },
 
// 相机前后镜头转换
  changePos() {
    this.setData({
      cameraPos: this.data.cameraPos == "back" ? "front" : "back"
    })
  },
 
// 关闭相机
  goBack() {
    this.setData({
      showCamera: false,
    })
  },

拍照成功回调函数的res是我们拍照照片的一些信息,其中res.tempImagePath是我们图片的本地路径,我当时还有一个裁剪图片的功能,这里没有写上去。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • js实现自定义右键菜单

    js实现自定义右键菜单

    这篇文章主要为大家详细介绍了js实现自定义右键菜单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • 根据json字符串生成Html的一种方式

    根据json字符串生成Html的一种方式

    本文介绍了根据Json串生成Html的一种方式(只是简单实现了文本框,密码框,下拉框)感兴趣的朋友可以了解下
    2013-01-01
  • codemirror6实现自定义代码提示效果实例

    codemirror6实现自定义代码提示效果实例

    这篇文章主要给大家介绍了关于codemirror6实现自定义代码提示效果的相关资料,CodeMirror是一个网络代码编辑器组件,它可以在网站中用于实现支持多种编辑功能的文本输入字段,并具有丰富的编程接口以允许进一步扩展,需要的朋友可以参考下
    2023-08-08
  • Javascript中字符串和数字的操作方法整理

    Javascript中字符串和数字的操作方法整理

    字符串和数字的操作在js中非常频繁,也非常重要。以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊。下面这篇文章就对字符串和数字的一些常用操作做个整理,一者加深印象,二者方便今后温习查阅。需要的朋友们可以参考借鉴。
    2017-01-01
  • 前端React Nextjs中的TS类型过滤实用技巧

    前端React Nextjs中的TS类型过滤实用技巧

    今天就来介绍一个在其它开源库中见到的既花里胡哨,又实用的TS类型——TS类型过滤,你会发现这些 TS骚操作真的很重要,因为它能很好地帮助你做静态类型校验
    2022-04-04
  • 详解微信小程序开发聊天室—实时聊天,支持图片预览

    详解微信小程序开发聊天室—实时聊天,支持图片预览

    这篇文章主要介绍了微信小程序实时聊天支持图片预览,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 小程序自动化测试的示例代码

    小程序自动化测试的示例代码

    这篇文章主要介绍了小程序自动化测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 前端JavaScript获取电池信息

    前端JavaScript获取电池信息

    受到同事启发,突然发现了几个有趣又实用的web api,下面这篇文章主要给大家介绍了关于前端JavaScript获取电池信息的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • Linux下使用jq友好的打印JSON技巧分享

    Linux下使用jq友好的打印JSON技巧分享

    本文主要给大家介绍通过一个叫jq的小工具,非常的实用,给大家参考下
    2014-11-11
  • 使用OPENLAYERS3实现点选的方法

    使用OPENLAYERS3实现点选的方法

    这篇文章主要为大家详细介绍了使用OPENLAYERS3实现点选的几种方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07

最新评论