A React Native module for selecting photos and videos from the device library or camera using native UI.
React Native Image Picker is a React Native module that provides access to the device's native media picker UI for selecting photos and videos from the library or directly from the camera. It simplifies handling media selection across iOS, Android, and Web platforms with a consistent, promise-based API.
React Native developers building mobile or cross-platform applications that require camera or gallery access for media capture and selection.
Developers choose this module for its seamless integration with native platform UI, ensuring a familiar user experience, while abstracting away platform-specific complexities through a unified JavaScript API.
: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.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages iOS and Android's native camera and gallery UI, ensuring a familiar and performant user experience as emphasized in the project's philosophy.
Provides consistent methods like launchCamera and launchImageLibrary across iOS, Android, and Web, simplifying code reuse with promise-based patterns.
Supports extensive settings such as mediaType, quality, durationLimit, and MIME type restrictions, detailed in the Options table for fine-tuned control.
Returns detailed information including dimensions, file size, duration, and base64 encoding, as shown in the Asset Object for robust media handling.
Currently, web only supports 'photo' media type, not video or mixed media, limiting its utility in cross-platform web applications as noted in the Options table.
Requires manual configuration like Info.plist keys on iOS and dependency additions for older Android APIs, adding overhead compared to more integrated solutions.
The README explicitly warns that using includeBase64 on large image files can cause performance issues, making it unsuitable for high-volume media processing.
Does not automatically handle camera permissions; if declared in manifest, the app must obtain them separately, adding complexity for developers.