How to pick images from Camera & Gallery in React Native app

ADITYA SHARMA
Enappd
Published in
6 min readAug 26, 2019
How to pick images from Camera & Gallery in React Native app

If you would like access to the entire source code, you can check out the GitHub repo here. For step-by-step tutorial, continue reading below.

Picking images from Gallery and Camera is one of the most important and basic functionalities that is needed in almost all the apps. Advanced functionalities are built upon this basic core facility. For picking the image, we will use a popular and superior library called react-native-image-picker. Which provides the ImagePicker component in which you can provide the image picking option from Gallery or Camera.

We’ll follow a stepped approach to create an ImagePicker app in React Native. Following are the steps

  • Step 1 — Create a basic React Native app
  • Step 2 — Set up React Native Image Picker
  • Step 3 — Use React Native Image Picker to pick images in app

So let’s dive right in!

ouch ! Let’s ….. not dive

1. Create a basic React Native app

Getting started with React Native will help you to know more about the way you can make a React Native project. We are going to use react-native init to make our React Native App.

Assuming that you have node installed, you can use npm to install the react-native-cli command-line utility. Open the terminal and run the following command to the bottom

npm install -g react-native-cli

Now, let’s create a new React Native project, e.g. RNimagePicker

react-native init RNimagePicker

When the above command is done, open the main folder in your preferred editor. When we open the project in a code editor, its structure looks like this.

Folder Structure

2. Set up React Native Image Picker

To use React Native Image Picker we need to install react-native-image-picker dependency.

Installation of Dependency

To add React Native Image Picker to our React Native Project, we need to run the following command at the root of the project

npm install react-native-image-picker --saveoryarn add react-native-image-picker

This command will copy all the dependencies into your node_modules directory, You can find the directory in node_modules the directory named react-native-image-picker.

Linking of Dependency

To use react-native-image-picker library we have to link some dependencies in Android and iOS project files. So, we need to run the following command at the root of the project

react-native link react-native-image-picker

Permissions

You will also need to add some permissions on Android.

Now we will see how to give permissions in Android to use Camera and read Storage.

We are going using a Native API Camera and choose the image from the Gallery. So, we need to provide some permission to access the Camera and Gallery.

We are going to add the following permissions in the AndroidManifest.xml

Project → android → app → src → debug → AndroidManifest.xml

Android Permission

Your AndroidManifest.xmlshould look like this:

Android Manifest.xml

3.How to Use React Native Image Picker

React Native Image Picker library provides an ImagePicker component in which you can set the options like the title of the picker, your custom buttons (name and title of the button) and storage options like skipBackup, etc..

Options that you get in React Native Image Picker are the following:

  • Title
  • Cancel ButtonTitle
  • Take PhotoButtonTitle
  • Choose From Library ButtonTitle
  • Custom Buttons
  • Camera Type
  • Media Type
  • Max Width
  • Max Height
  • Quality
  • Video Quality
  • Duration Limit
  • Rotation
  • Allows Editing
  • No Data
  • Storage Options
  • PermissionDenied

The code snippet of ImagePicker

Image Picker options

In the above code, we will open an Image picker as you Click on “chooseImage” and will show the selected image on the Image component. Selection options are Camera and Gallery by default but we have also added a custom button which will simply generate an alert when we click on it.

Click on Choose File

Directly Launch Camera

To implement the functionality of launching the Camera directly as you click on “Direct Launch Camera”, use the code below. It will directly open the camera and will show the clicked image on the Image Component.

Directly Launch Camera
Click on Launch Camera

Directly Launch Image Library

To Directly Launch the Image Library you can use the following code below. It will directly open the Image Library and will show the Selected image on the Image Component.

Directly Launch Image Library
Click On Launch Image Library

App.js

This React Native module allows you to use native UI to select a photo/video from the device library as well as from the camera directly.

Your Screen should look like this:

Android Screens

Finally, for your reference all the screens for this image picker functionality will look similar to those shown below:

Android Screens

Conclusion

In this post, you learned in a quick fashion to implement React Native Image Picker in your React Native App. This enables your app to pick images/videos from the Camera and Gallery. It is one of the most important and basic functionalities that is needed in almost all the apps. Advanced functionalities are build up upon this basic core facility. You can find the complete code in this Github repo over here.

--

--