微信小程序实现拍照功能

 更新时间: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 判断控件获得焦点的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-03-03
  • VC调用javascript的几种方法(推荐)

    VC调用javascript的几种方法(推荐)

    下面小编就为大家带来一篇VC调用javascript的几种方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • javascript面向对象之对象的深入理解

    javascript面向对象之对象的深入理解

    这篇文章主要介绍了javascript面向对象之对象的深入理解,将javascript面向对象程序设计中一切都视为对象,并以实例形式进一步分析了面向对象的特性,需要的朋友可以参考下
    2015-01-01
  • ES6初步了解原始数据类型Symbol的用法

    ES6初步了解原始数据类型Symbol的用法

    ES6中为我们新增了一个原始数据类型Symbol,大家是否知道Symbol可以作用在哪?用来定义对象的私有变量如何写入对象,本文对ES6 Symbol的用法介绍的非常详细,需要的朋友参考下吧
    2023-10-10
  • 原生JS实现文件上传

    原生JS实现文件上传

    这篇文章主要为大家详细介绍了原生JS实现文件上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 获取客户端网卡MAC地址和IP地址实现JS代码

    获取客户端网卡MAC地址和IP地址实现JS代码

    获取客户端的一些信息,如IP和MAC,以结合身份验证,相信很多人都会这样做吧,我们这里用Javascript,这样做的好处是不需要服务器端进行处理,有客户端自行获取,感兴趣的你可以参考下哈
    2013-03-03
  • 基于zepto.js简单实现上传图片

    基于zepto.js简单实现上传图片

    这篇文章主要介绍了基于zepto.js简单实现上传图片的相关资料,需要的朋友可以参考下
    2016-06-06
  • js执行shell命令的几种方式(Node)

    js执行shell命令的几种方式(Node)

    在做一个客户端基建项目的时候,多处需要用到JS调取命令行执行shell脚本,本文主要介绍了js执行shell命令的几种方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • JavaScript实现向setTimeout执行代码传递参数的方法

    JavaScript实现向setTimeout执行代码传递参数的方法

    这篇文章主要介绍了JavaScript实现向setTimeout执行代码传递参数的方法,分析了向setTimeout传递参数的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04

最新评论