RNcamera

使用react-native-camera遇到的问题

  • react-native-camera 是一个第三方的开源库,我们可以通过它来调用设备的摄像头,从而实现拍照、或者录像功能。
  • react-native-camera 功能强大,我们可以选择使用哪个摄像头(前置后置)、是拍照还是录像、是否录制声音、是否开启闪光灯、视图比例、拍摄质量、拍摄方向、触摸功能、条形码/二维码扫描等等。
1、横屏拍照 照片会自动旋转

​ 在拍照时可以得到照片的信息,在此时可以对照片进行设置

图片角度调整
js层中调用orientation参数,即可进行旋转角度选择
在这里插入图片描述

样式代码

import React, { Component } from 'react';
import { RNCamera } from 'react-native-camera';

class Scan extends Component {
  constructor(props) {
    super(props);
    this.state = {
      uri: '',
    };
  }

  render() {
	//照片的显示
    const picture = (this.props.imgURL !== "") ? (<Image style={styles.cameraSize} source={{ uri: this.props.imgURL }}></Image>) : (null); 
 
    return (
      < View >
        {/* 相机页面 */}
        
        <RNCamera
          ref={(cam) => {
            this.camera = cam;
          }}
          cameraState={this.state.cameraState}
          autoFocus={RNCamera.Constants.AutoFocus.on} //自动聚焦
          style={[styles.preview]}
          type={RNCamera.Constants.Type.back} //设置前置还是后置摄像头
          flashMode={RNCamera.Constants.FlashMode.on}
          androidCameraPermissionOptions={{	 //拍照权限
            title: 'Permission to use camera',
            message: 'We need your permission to use your camera',
            buttonPositive: 'Ok',
            buttonNegative: 'Cancel',
          }}
        >
        </ RNCamera >
      </ View >
    );
  }
  // 拍照函数
  takePicture = async() => {
    if (this.camera) {
      const options = {
        base64: true,
        fixOrientation: true, //(仅适用于android,布尔值true或false)true如果要修复错误的图像方向(在某些设备上可能需要5秒钟)
        orientation: "portrait", //指定我们用于拍照的方向。可能的值:"portrait","portraitUpsideDown","landscapeLeft"或"landscapeRight"。
      };
      const data = await this.camera.takePictureAsync(options); //options
      console.log(data.uri)
      this._apiText(data.base64);
      this.props.setShowPicture(data.uri); //存放照片
    }
  }


The promise will be fulfilled with an object with some of the
following properties:

  • width: returns the image’s width (taking image orientation into account)
    返回图像的宽度(考虑图像方向)
  • height: returns the image’s height (taking image orientation into account)
    返回图像的高度(考虑图像方向)
  • uri: (string) the path to the image saved on your app’s cache directory.
    (字符串)保存在应用程序的缓存目录中的图像的路径。
  • base64: (string?) the base64 representation of the image if required.
    (字符串)图像的base64表示形式(如果需要)
  • exif: returns an exif map of the image if required.
    如果需要,返回图像的exif映射。
  • pictureOrientation: (number) the orientation of the picture
    (数字)图片的方向
  • deviceOrientation: (number) the orientation of the device
    (数字)设备的方向
2、拍完之后预览照片会放大

在样式中对img进行设置

cameraSize: {
    minHeight: '100%',
    minWidth: '100%'
  },

更详细的看 https://www.cnblogs.com/XYQ-208910/p/12176757.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值