Use expo-image-picker if you're using Expo.

Anything that requires the use of react-native link will not work with Expo, unless stated that it is already included in Expo.

EDIT for 2025:

react-native link is not required in newer versions of react native because of auto linking. Also, Expo supports nearly every package requiring native code, including react-native-image-picker. You can use either in your project regardless of whether you're using Expo or not, but keep in mind that generally Expo libraries are more likely to be well maintained than community equivalents because Expo is a company with salaried developers being paid to maintain the library.

But there are cases where an Expo library may not do what you want so in those cases it may make sense to use a community solution

Answer from Zaytri on Stack Overflow
🌐
Expo Documentation
docs.expo.dev › expo sdk › imagepicker
ImagePicker - Expo Documentation
expo-image-picker provides access to the system's UI for selecting images and videos from the phone's library or taking a photo with the camera. ... If you are installing this in an existing React Native app, make sure to install expo in your ...
🌐
Expo Documentation
docs.expo.dev › expo tutorial › use an image picker
Use an image picker - Expo Documentation
import { View, StyleSheet } from 'react-native'; import * as ImagePicker from 'expo-image-picker'; import Button from '@/components/Button'; import ImageViewer from '@/components/ImageViewer'; const PlaceholderImage = require('@/assets/images/background-image.png'); export default function Index() { const pickImageAsync = async () => { let result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ['images'], allowsEditing: true, quality: 1, }); if (!result.canceled) { console.log(result); } else { alert('You did not select any image.'); } }; return ( <View style={styles.container}> <Vie
Published   October 10, 2024
Discussions

react-native-image-picker vs expo ImagePicker - Stack Overflow
I have tried many attempts to get react-native-image-picker up and working with my RN app. I am using Expo and VS Code and am not running the app with Xcode or Android Studio. There seems to be many More on stackoverflow.com
🌐 stackoverflow.com
Image Picker in Expo-React Native
Try let result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ['images'], allowsEditing: true, quality: 1, }); More on reddit.com
🌐 r/reactnative
2
5
April 21, 2025
Multiple Image Picker for Expo
https://docs.expo.dev/versions/latest/sdk/imagepicker/#:~:text=false-,allowsMultipleSelection,-(optional) More on reddit.com
🌐 r/reactnative
2
2
March 26, 2024
Is React Native Image Picker 💀?
I would hardly call it abandoned, it's being worked on constantly - there was literally a commit 1 hour ago. This post comes across very self entitled. Everything has bugs. If you want to use an open source package that you're not paying for - you can't expect it to meet your specific quality standards. If you don't like what they're building / the approach they're taking you are always welcome to build your own library or contribute to fixing some of those bugs. More on reddit.com
🌐 r/reactnative
24
0
September 30, 2024
🌐
npm
npmjs.com › package › expo-image-picker
expo-image-picker - npm
2 weeks ago - Provides access to the system's UI for selecting images and videos from the phone's library or taking a photo with the camera. ... For managed Expo projects, please follow the installation instructions in the API documentation for the latest ...
      » npm install expo-image-picker
    
Published   Apr 09, 2026
Version   55.0.18
🌐
Reddit
reddit.com › r/reactnative › image picker in expo-react native
r/reactnative on Reddit: Image Picker in Expo-React Native
April 21, 2025 -

Image Picker in Expo-React Native

I am using expo-image-picker ~16.0.6 version, when I use the below code :

const { status } = await ImagePicker.requestMediaLibraryPermissionsAsync();

if (status !== 'granted') {
    Alert.alert('Permission Denied', 'We need permission to access your media.');
    return;
}

let result = await ImagePicker.launchImageLibraryAsync({
    mediaTypes: ImagePicker.MediaTypeOptions.Images,
    allowsEditing: true,
    quality: 1,
});

if (!result.canceled) {
    const selectedAsset = result.assets[0];
    setAttachment(selectedAsset.uri); // Store the URI
} 

The media library will be opened without any permission alert to access media and i getting the below warning ⚠️

WARN [expo-image-picker] ImagePicker.MediaTypeOptions have been deprecated. Use ImagePicker.MediaType or an array of ImagePicker.MediaType instead.

And to tackle that if I use the below as it mentioned..The media picker won't even trigger..

const result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: [ImagePicker.MediaType.IMAGE], allowsEditing: true, quality: 1, });

So can any one tell me how to resolve this issue? I know this might be basic issue for some one, as I am new to react native so i couldn't resolve this.. Thanks 🙌

🌐
DEV Community
dev.to › aaronksaunders › react-native-expo-image-picker-and-firebase-file-upload-2lg8
How To Use React Native Expo Image Picker and Firebase File Upload - DEV Community
June 10, 2023 - # create project npx create-expo-app my-app-camera-fb #install dotenv for env variables npm install -D react-native-dotenv # using camera from image picker npx expo install expo-image-picker # using firebase javascript API npx expo install firebase # ensuring the firebase api is packaged correctly npx expo customize metro.config.js
🌐
KindaCode
kindacode.com › article › image-picker-in-react-native
Using Image Picker and Camera in React Native (Expo) - KindaCode
// App.js import React, { useState } from 'react'; import { View, Text, StyleSheet, Image, Button } from 'react-native'; import * as ImagePicker from 'expo-image-picker'; function App() { // The path of the picked image const [pickedImagePath, setPickedImagePath] = useState(''); // This function is triggered when the "Select an image" button pressed const showImagePicker = async () => { // Ask the user for the permission to access the media library const permissionResult = await ImagePicker.requestMediaLibraryPermissionsAsync(); if (permissionResult.granted === false) { alert("You've refused t
Find elsewhere
🌐
GitHub
github.com › expo › expo › tree › main › packages › expo-image-picker
expo/packages/expo-image-picker at main · expo/expo
An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web. - expo/packages/expo-image-picker at main · expo/expo
Author   expo
🌐
GitHub
github.com › expo › react-native-image-picker-android
GitHub - expo/react-native-image-picker-android: A camera and gallery image picker native module for Android, giving a subset of the API of https://github.com/marcshilling/react-native-image-picker
A camera and gallery image picker native module for Android, giving a subset of the API of https://github.com/marcshilling/react-native-image-picker - expo/react-native-image-picker-android
Starred by 34 users
Forked by 2 users
Languages   Java 48.1% | Objective-C 31.0% | JavaScript 20.9% | Java 48.1% | Objective-C 31.0% | JavaScript 20.9%
🌐
GitHub
github.com › react-native-image-picker › react-native-image-picker
GitHub - react-native-image-picker/react-native-image-picker: :sunrise_over_mountains: A React Native module that allows you to use native UI to select media from the device library or directly from the camera. · GitHub
A React Native module that allows you to select a photo/video from the device library or camera.
Starred by 8.6K users
Forked by 2.1K users
Languages   Java 41.2% | Objective-C++ 27.6% | TypeScript 19.2% | Objective-C 3.8% | Ruby 2.9% | JavaScript 2.6%
🌐
GitHub
github.com › natysoz › expo-images-picker
GitHub - natysoz/expo-images-picker: Multiple Asset Photos Videos selecting package for Expo SDK
Multiple Asset Photos | Videos selecting package for Expo SDK 43+. For users who use React native and managed workflow + Styled Components. MediaLibrary. Image-manipulator.
Starred by 97 users
Forked by 37 users
Languages   TypeScript 100.0% | TypeScript 100.0%
🌐
Medium
medium.com › @YAGNIK09 › react-native-file-image-picker-with-expo-documentpicker-imagepicker-camera-2b3699b3db99
React Native File & Image Picker with Expo (DocumentPicker + ImagePicker + Camera) | by Y@GNIK | Medium
October 2, 2025 - 2. Image Picker (expo-image-picker) : The Image Picker lets the user select an image from the gallery or take a new photo with the camera.
🌐
YouTube
youtube.com › watch
Image Picker in Expo React Native - YouTube
Expo Image Picker Tutorial - Pick & Display Images in React Native! 🎥🚀 Learn how to use Expo Image Picker in your React Native app to select images and vid...
Published   March 23, 2025
🌐
Medium
michaelphaslam.medium.com › how-to-build-a-custom-image-picker-in-react-native-expo-afcbf7c0c5a7
How To Build A Custom Image Picker In React Native & Expo | by Mike Haslam | Medium
May 11, 2022 - Expo Snack https://snack.expo.io/@lorling/pick-images It’s a super cool way to run code on devices right in the browser. So the first step was to find out how to get images from the users device.
🌐
GitHub
github.com › mdjfs › expo-image-multiple-picker
GitHub - mdjfs/expo-image-multiple-picker: Fully customizable image picker for react native · GitHub
Fully customizable image picker for react native, to select one or multiple images · Nice features for 4.7.0 version! More information at the bottom ... import { ImagePicker } from 'expo-image-multiple-picker' function App() { return ( <ImagePicker onSave={(assets) => console.log(assets)} onCancel={() => console.log('no permissions or user go back')} /> ) }
Starred by 18 users
Forked by 8 users
Languages   TypeScript 91.5% | Kotlin 3.2% | Ruby 1.7% | JavaScript 1.4% | Swift 1.1% | Objective-C 1.1%
🌐
GitHub
github.com › expo › expo › tree › master › packages › expo-image-picker
expo/packages/expo-image-picker at master · expo/expo
March 1, 2019 - Provides access to the system's UI for selecting images and videos from the phone's library or taking a photo with the camera. ... For managed Expo projects, please follow the installation instructions in the API documentation for the latest ...
Author   expo
🌐
GitHub
github.com › MonstroDev › expo-image-picker-multiple
GitHub - MonstroDev/expo-image-picker-multiple: Multiple image selecting package for Expo SDK (React Native) using MediaLibrary and Permissions.
Multiple image selecting package for Expo SDK (React Native) using MediaLibrary and Permissions. - MonstroDev/expo-image-picker-multiple
Starred by 64 users
Forked by 67 users
Languages   JavaScript 100.0% | JavaScript 100.0%
🌐
Medium
deinyefa.medium.com › a-photo-picker-with-expo-for-react-native-9b7897b69f7f
A Photo Picker with Expo (for React Native) | by Deinyefa | Medium
June 21, 2019 - launchImageLibraryAsync is also an asynchronous function that loads an Image Picker UI and waits for the user to pick an image before continuing. import React, { Component } from "react"; import { Permissions, ImagePicker } from "expo";export default class PhotoPickerScreen extends Component { constructor(props) { super(props); this.state = { hasCameraPermission: null, image: null, } } async componentDidMount() { ...
🌐
GetStream
getstream.io › chat messaging › docs › react native (v5) › native image picker
Native Image Picker - React Native (v5) Chat Messaging ...
[ "expo-image-picker", { "photosPermission": "$(PRODUCT_NAME) will access your photos to let them share with others." } ] This shall give you a UI to select images from the gallery using native image picker or take a picture from the camera or alternatively select a file. Please follow the post installation steps as mentioned in the react-native-image-picker.