Skip to content
Support taking photo, video recording or selecting from photo library.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
resource Replace png image to gif. Nov 29, 2018
src Add custom options for RNCamera.takePictureAsync and RNCamera.recordA… Mar 6, 2019
.gitignore Remove example project. Nov 29, 2018
.npmignore Fix: Flash mode use constants. Feb 13, 2019
.travis.yml Add Travis-CI for auto deploy. Jan 3, 2019
LICENSE Initial. Sep 17, 2018
package.json Bump version 1.2.11. Mar 6, 2019


npm version Build Status


It is a react native UI component including a camera view and an album selection view. You can take photos, take video recording or select photo from photo library.

It supports:

  • Take photos by camera.
  • Video recording.
  • Select photos from photo library.
  • Safe area for iPhone X.
  • Portrait and Landscape mode.
  • Multiple selection or capture mode.
  • Preview after capture or video recording.
  • Maximum count of photos.


Same UI on Android.


Install by Yarn:

yarn add react-native-full-image-picker

Install by NPM:

npm install --save react-native-full-image-picker

NOTICE: This library has no native code for iOS and Android. But you should also install native code of these libraries:


First import in the file:

import * as ImagePicker from 'react-native-full-image-picker';

It has three method:

  • ImagePicker.getCamera(options): Take photo from camera. (Camera Mode)
  • ImagePicker.getVideo(options): Video recording. (Video Mode)
  • ImagePicker.getAlbum(options): Select photo or video from photo library. (Photo Mode)

options is a object with these settings:

  • callback: (data: any[]) => void: Callback method with photo or video array. data is an uri array of photo or video. Do not use Alert in this callback method.
  • maxSize?: number: The maximum number of photo count. Valid in camera or photo library mode.
  • sideType?: RNCamera.Constants.Type: Side of camera, back or front. Valid in camera or video.
  • pictureOptions?: RNCamera.PictureOptions: The options of RNCamera.takePictureAsync(PictureOptions)
  • recordingOptions?: RNCamera.RecordingOptions: The options of RNCamera.recordAsync(RecordingOptions)
  • flashMode?: RNCamera.Constants.FlashMode: Flash mode. Valid in camera or video.

You can use react-native-general-actionsheet to show ActionSheet by same API and UI with ActionSheetIOS.

Change Default Property

You can import page and change defaultProps to modify settings globally:

import * as ImagePicker from 'react-native-full-image-picker';

ImagePicker.XXX.defaultProps.yyy = ...;

The XXX is the export items of library. Following is the detail.


This is the outter navigator for all modes. You can change these properties of defaultProps:

Name Type Description
okLabel string OK button text
cancelLabel string Cancel button text
deleteLabel string Delete button text
useVideoLabel string UseVideo button text
usePhotoLabel string UsePhoto button text
previewLabel string Preview button text
choosePhotoTitle string ChoosePhoto page title
maxSizeChooseAlert (num: number) => string Max size limit alert message when choosing photos
maxSizeTakeAlert (num: number) => string Max size limit alert message when taking photos from camera
supportedOrientations string[] Supported orientations. Default is landscape and portrait


This is page for taking photos from camera or recording video. You can change these properties of defaultProps:

Name Type Description
maxSize number Default max number limit
sideType RNCamera.Constants.Type Camera side type. Default is back
flashMode RNCamera.Constants.FlashMode Flash mode. Default is off


This is page for selecting photo from photo library. You can change these properties of defaultProps:

Name Type Description
maxSize number Default max number limit
autoConvertPath boolean Auto copy photo or not to convert file path to standard file path. Default is false
assetType string Asset type. Please see CameraRoll Docs
groupTypes string Group type. Please see CameraRoll Docs
You can’t perform that action at this time.