Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-native-customized-image-picker

Package Overview
Dependencies
Maintainers
1
Versions
79
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-customized-image-picker

Select single or multiple images, with croping option

  • 1.3.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
471
increased by7.78%
Maintainers
1
Weekly downloads
 
Created
Source

react-native-customized-image-picker

iOS/Android image picker with support for camera, video compression, multiple images and cropping

Result

Usage

npm version npm downloads build:started

example

https://github.com/shijingsh/pickExample

Import library
import ImagePicker from "react-native-customized-image-picker";

Call single image picker

ImagePicker.openPicker({}).then(image => {
  console.log(image);
});

Call multiple image picker

ImagePicker.openPicker({
  multiple: true
}).then(images => {
  console.log(images);
});

Select from camera

ImagePicker.openCamera({
  width: 300,
  height: 400,
  cropping: true
}).then(image => {
  console.log(image);
});

Select video

ImagePicker.openCamera({
  width: 300,
  height: 400,
  isVideo: true
}).then(image => {
  console.log(image);
});

Optional cleanup

Module is creating tmp images which are going to be cleaned up automatically somewhere in the future. If you want to force cleanup, you can use clean to clean all tmp files. Delete the cut, compression, and photographed pictures.

ImagePicker.clean()
  .then(() => {
    console.log("removed all tmp images from tmp directory");
  })
  .catch(e => {
    console.log(e);
  });
Request Object
PropertyTypeDescription
croppingbool (default false)Enable or disable cropping
widthnumber(default 200)Width of result image when used with cropping option
heightnumber(default 200)Height of result image when used with cropping option
multiplebool (default false)Enable or disable multiple image selection
isCamerabool (default false)Enable or disable camera selection
openCameraOnStartbool (default false)Enable or disable turn on the camera when it starts
returnAfterShotbool (default false)Enable or disable pictures taken directly
multipleShotbool (default false)Enable or disable Capture image multiple time
maxSizenumber (default 9)set image count
spanCountnumber (default 3)Set the number of pictures displayed in a row
includeBase64bool (default false)Enable or disable includeBase64
compressQualitynumber([0-100])Picture compression ratio
minCompressSizenumberSetting the minimum size of the compressed file(kb)
titlestringSets the title of the page
isVideobool (default false)Enable or disable video only
isSelectBothbool (default false)Enable or disable select both images and videos
isHidePreviewbool (default false)Enable or disable hidden preview button
isHideVideoPreviewbool (default false)Enable or disable hidden video preview button
isPlayGifbool (default false)Enable or disable play gif
hideCropBottomControlsbool (default true)Enable or disable crop controls
aspectRatioXnumber (default 1)Set an aspect ratio X for crop bounds.
aspectRatioYnumber (default 1)Set an aspect ratio Y for crop bounds.
videoQualitynumber (default 1)1: high 0: low.
imageLoaderstring (default "GLIDE")Sets the imageLoader of the page,enum(PICASSO,GLIDE,FRESCO,UNIVERSAL)
Response Object
PropertyTypeDescription
pathstringSelected image location
widthnumberSelected image width
heightnumberSelected image height
mimestringSelected image MIME type (image/jpeg, image/png)
sizenumberSelected image size in bytes
database64Optional base64 selected file representation

Install

npm i react-native-customized-image-picker --save
yarn add react-native-customized-image-picker
android
add permission /android/app/src/main/AndroidManifest.xml
    <uses-permission android:name="android.permission.CAMERA" />

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />

iOS

info.plist add the following to the file
	<key>NSCameraUsageDescription</key>
	<string>1</string>
	<key>NSLocationWhenInUseUsageDescription</key>
	<string></string>
	<key>NSPhotoLibraryAddUsageDescription</key>
	<string>1</string>
	<key>NSPhotoLibraryUsageDescription</key>
	<string>1</string>

auto linked

pod install

cd ios and run

pod install

Setting themes

Setting language
  • Add file gallery_strings.xml under the directory "yourProject\android\app\src\main\res\values".
<resources>
    <string name="gallery_loading_view_click_loading_more">Load more</string>
    <string name="gallery_loading_view_no_more">No more</string>
    <string name="gallery_loading_view_loading">Loading…</string>

    <string name="gallery_over_button_text">Complete</string>
    <string name="gallery_over_button_text_checked">Complete(%1$d/%2$d)</string>
    <string name="gallery_image_max_size_tip">You can only choose %1$d photos</string>
    <string name="gallery_page_title">%1$d/%2$d</string>
    <string name="gallery_media_grid_image_title">photos</string>
    <string name="gallery_media_grid_video_title">video</string>
    <string name="gallery_default_request_storage_access_permission_tips">App request to read your album</string>
    <string name="gallery_default_camera_access_permission_tips">>App request to Camera</string>
    <string name="gallery_default_media_empty_tips">Absolutely empty</string>
    <string name="gallery_device_no_camera_tips">The device has no camera</string>
    <string name="gallery_device_camera_unable">Camera not available</string>
    <string name="gallery_preview_title">preview</string>
    <string name="gallery_all_image">All pictures</string>
    <string name="gallery_all_video">All video</string>
    <string name="gallery_take_image">Photograph</string>
    <string name="gallery_image_selected">Selected</string>
    <string name="gallery_image_unit">pictures</string>
    <string name="gallery_title_cut">cut</string>
    <string name="gallery_video">record video</string>
</resources>
Setting style
  • modify file styles.xml under the directory "yourProject\android\app\src\main\res\values".
<resources>
   <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

   </style>
   <style name="Theme_Light.Default">
       <item name="gallery_toolbar_bg">#233</item>
       <item name="gallery_toolbar_close_image">@mipmap/ic_launcher</item>
       <item name="gallery_toolbar_close_color">#223</item>
       <item name="gallery_toolbar_widget_color">#2A2A2F</item>
       <item name="gallery_toolbar_text_color">#fff</item>
       <item name="gallery_toolbar_text_size">16dp</item>
       <item name="gallery_toolbar_divider_height">16dp</item>
       <item name="gallery_toolbar_divider_bg">#1976D2</item>
       <item name="gallery_toolbar_bottom_margin">10dp</item>
       <item name="gallery_toolbar_text_gravity">right</item>
       <item name="gallery_toolbar_height">16dp</item>
       <item name="gallery_toolbar_over_button_bg">@mipmap/ic_launcher</item>
       <item name="gallery_toolbar_over_button_text_size">16dp</item>
       <item name="gallery_toolbar_over_button_text_color">#446</item>
       <item name="gallery_toolbar_over_button_pressed_color">#1976D2</item>
       <item name="gallery_toolbar_over_button_normal_color">#1976D2</item>
       <item name="gallery_color_statusbar">#1976D2</item>
       <item name="gallery_color_active_widget">#1976D2</item>
       <item name="gallery_checkbox_button_tint_color">#1976D2</item>
       <item name="gallery_checkbox_text_color">#1976D2</item>
       <item name="gallery_page_bg">#FFFFFF</item>
       <item name="gallery_default_image">@mipmap/ic_launcher</item>
       <item name="gallery_camera_image">@mipmap/ic_launcher</item>
       <item name="gallery_camera_bg">#1976D2</item>
       <item name="gallery_take_image_text_color">#1976D2</item>
       <item name="gallery_ucrop_status_bar_color">#1976D2</item>
       <item name="gallery_ucrop_toolbar_color">#1976D2</item>
       <item name="gallery_ucrop_toolbar_widget_color">#1976D2</item>
       <item name="gallery_ucrop_activity_widget_color">#1976D2</item>
       <item name="gallery_ucrop_toolbar_title">@string/app_name</item>
   </style>

   <style name="gallery_checkBox" parent="@android:style/Widget.CompoundButton.CheckBox">
       <item name="android:scaleX">1.5</item>
       <item name="android:scaleY">1.5</item>
   </style>
</resources>
  • modify file AndroidManifest.xml .
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example"
    android:versionCode="1"
    android:versionName="1.0">

  <application
    android:name=".MainApplication"
    android:allowBackup="true"
    android:label="@string/app_name"
    android:icon="@mipmap/ic_launcher"
    tools:replace="android:theme"
    android:requestLegacyExternalStorage="true"
    android:theme="@style/AppTheme">
      <meta-data android:name="ScopedStorage" android:value="true" />
      <activity
          android:name="cn.finalteam.rxgalleryfinal.ui.activity.MediaActivity"
          android:exported="true"
          android:theme="@style/Theme_Light.Default" />
  </application>
</manifest>
Important content
  • xmlns:tools="http://schemas.android.com/tools"
  • tools:replace="android:theme"
  • android:theme="@style/AppTheme"
  • cn.finalteam.rxgalleryfinal.ui.activity.MediaActivity Theme_Light.Default

License

MIT

Keywords

FAQs

Package last updated on 12 Mar 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc