0.2.1 • Published 2 years ago

react-camera-ios v0.2.1

Weekly downloads
9
License
MIT
Repository
github
Last release
2 years ago

GitHub Actions

React Camera iOS

A simple react implementation of iPhone / iPad photo camera with all native styles and ability to change camera (user / environment).

The following technologies were used to create the library:

  • WebRTC for getting the access to camera media stream,
  • HTML <video> element for display the camera stream,
  • HTML <canvas> element for taking a screenshot (photo) from the <video> element.

Installation

You can install the library using NPM:

npm install react-camera-ios

or Yarn:

yarn add react-camera-ios

Usage

import React from 'react';
import ReactDOM from 'react-dom';
import Camera, { DEVICE, FACING_MODE, PLACEMENT } from 'react-camera-ios';

// Styles
import 'react-camera-ios/build/styles.css';

const containerStyle = { display: 'flex', height: '300px', width: '300px' };

ReactDOM.render(
  <div style={containerStyle}>
    <Camera
      device={DEVICE.MOBILE}
      facingMode={FACING_MODE.ENVIRONMENT}
      placement={PLACEMENT.COVER}
      quality="1"
      onError={error => console.log(error)}
      onTakePhoto={dataUrl => console.log(dataUrl)}
    />
  </div>,
  document.getElementById('root'),
);

Constants

The library provides some constants, you can use them as values of camera properties:

const DEVICE = {
  MOBILE: 'mobile',
  TAB: 'tab',
};

const FACING_MODE = {
  ENVIRONMENT: 'environment',
  USER: 'user',
};

const PLACEMENT = {
  CONTAIN: 'contain',
  COVER: 'cover',
};

PropTypes

NameDescriptionTypeDefault value
deviceWhich style of camera do you want to see:DEVICE.MOBILE - iPhone camera style,DEVICE.TAB - iPad camera style.stringDEVICE.MOBILE
facingModeIn which side of device do you want to open camera:FACING_MODE.ENVIRONMENT - back (main) camera,FACING_MODE.USER - front camera.It works like MediaTrackConstraints.facingModestringFACING_MODE.ENVIRONMENT
isTurnedOnCamera power indicatorbooltrue
placementCamera placement relative to the container:PLACEMENT.CONTAIN - scales the camera as large as possible without cropping,PLACEMENT.COVER - scales the camera as large as possible (but if the proportions of the camera differ from the container, it is cropped either vertically or horizontally so that no empty space remains).It works like CSS background-size propertystringPLACEMENT.COVER
qualityThe quality of photo (a number between 0 and 1). It will be passed to canvas.toDataURL()number0.92
onError(error)Called when an error is occured (error object will be passed as an agrument)func
onTakePhoto(dataUrl)Called when a photo is taken (dataUrl will be passed as an argument)func

Demo

React Camera iOS

0.2.1

2 years ago

0.2.0

2 years ago

0.1.1

4 years ago

0.1.0

4 years ago