微信小程序实现拍照功能

 更新时间: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简单判断滚动条的滚动方向实现方法,涉及javascript针对scrollTop事件的相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • 5种处理js跨域问题方法汇总

    5种处理js跨域问题方法汇总

    本文汇总了解决js跨域问题的5种方法,除了最后一种使用flash解决跨域问题由于过于高端,没有做出介绍外,其余四种都做了下总结,这里推荐给有相同需求的小伙伴。
    2014-12-12
  • 修改js confirm alert 提示框文字的简单实例

    修改js confirm alert 提示框文字的简单实例

    下面小编就为大家带来一篇修改js confirm alert 提示框文字的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • javascript设计模式 – 单例模式原理与应用实例分析

    javascript设计模式 – 单例模式原理与应用实例分析

    这篇文章主要介绍了javascript设计模式 – 单例模式原理与应用,结合实例形式分析了javascript单例模式原理、定义、应用场景及相关操作注意事项,需要的朋友可以参考下
    2020-04-04
  • javascript实现框架高度随内容改变的方法

    javascript实现框架高度随内容改变的方法

    这篇文章主要介绍了javascript实现框架高度随内容改变的方法,实例分析了通过父页面及内容改变框架高度两种实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • RequireJS使用注意细节

    RequireJS使用注意细节

    RequireJS是一个非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一。这篇文章主要介绍了RequireJS使用注意细节的相关资料,需要的朋友可以参考下
    2016-05-05
  • 让您的菜单不离网站

    让您的菜单不离网站

    让您的菜单不离网站...
    2006-10-10
  • 微信小程序自定义扫码功能界面的实现代码

    微信小程序自定义扫码功能界面的实现代码

    这篇文章主要介绍了微信小程序自定义扫码功能界面的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 微信小程序scroll-view隐藏滚动条的方法详解

    微信小程序scroll-view隐藏滚动条的方法详解

    这篇文章主要介绍了微信小程序scroll-view隐藏滚动条的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 总结javascript中的六种迭代器

    总结javascript中的六种迭代器

    本文总结了javascript中的六种迭代器的使用实例,分别是forEach迭代器、every迭代器、some迭代器、reduce迭代器、map迭代器和fiter迭代器,有需要的小伙伴们可以参考借鉴。
    2016-08-08

最新评论