react-native-image-crop-picker/README.md

151 lines
5.5 KiB
Markdown
Raw Normal View History

2016-05-18 10:07:36 +00:00
# react-native-image-crop-picker
2016-12-29 15:47:27 +00:00
iOS/Android image picker with support for camera, configurable compression, multiple images and cropping
2016-05-18 10:07:36 +00:00
## Result
2016-07-27 00:30:48 +00:00
<img width=200 title="iOS Single Pick" src="https://github.com/ivpusic/react-native-image-crop-picker/blob/master/images/ios_single_pick.png">
<img width=200 title="iOS Crop" src="https://github.com/ivpusic/react-native-image-crop-picker/blob/master/images/ios_crop.png">
2016-05-18 10:07:36 +00:00
<img width=200 title="iOS Multiple Pick" src="https://github.com/ivpusic/react-native-image-crop-picker/blob/master/images/ios_multiple_pick.png">
## Usage
Import library
```javascript
import ImagePicker from 'react-native-image-crop-picker';
```
2016-08-11 21:45:33 +00:00
#### Select from gallery
2016-05-18 10:07:36 +00:00
Call single image picker with cropping
```javascript
ImagePicker.openPicker({
width: 300,
height: 400,
cropping: true
}).then(image => {
console.log(image);
});
```
Call multiple image picker
```javascript
ImagePicker.openPicker({
multiple: true
}).then(images => {
console.log(images);
});
```
2016-08-11 21:45:33 +00:00
#### Select from camera
```javascript
ImagePicker.openCamera({
width: 300,
height: 400,
cropping: true
}).then(image => {
console.log(image);
});
```
2017-02-07 20:00:39 +00:00
#### Crop picture
```javascript
ImagePicker.openCropper({
path: 'my-file-path.jpg',
width: 300,
height: 400
}).then(image => {
console.log(image);
});
```
2016-09-07 19:41:31 +00:00
#### 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, or `cleanSingle(path)` to clean single tmp file.
```javascript
ImagePicker.clean().then(() => {
console.log('removed all tmp images from tmp directory');
}).catch(e => {
alert(e);
});
```
2016-08-05 18:57:10 +00:00
#### Request Object
| Property | Type | Description |
| ------------- |:-------------:| :-----|
| cropping | bool (default false) | Enable or disable cropping |
| width | number | Width of result image when used with `cropping` option |
| height | number | Height of result image when used with `cropping` option |
| multiple | bool (default false) | Enable or disable multiple image selection |
| includeBase64 | bool (default false) | Enable or disable returning base64 data with image |
| cropperTintColor (android only) | string (default `"#424242"`) | When cropping image, determines the color of Toolbar and other UX elements. Uses UCrop's `setToolbarColor, setActiveWidgetColor, and setStatusBarColor` with color specified. |
| cropperCircleOverlay | bool (default false) | Enable or disable circular cropping mask. |
2016-08-05 18:57:10 +00:00
| maxFiles (ios only) | number (default 5) | Max number of files to select when using `multiple` option |
2016-09-12 07:08:38 +00:00
| smartAlbums (ios only) | array (default ['UserLibrary', 'PhotoStream', 'Panoramas', 'Videos', 'Bursts']) | List of smart albums to choose from |
| useFrontCamera (ios only) | bool (default false) | Whether to default to the front/'selfie' camera when opened |
| compressVideoPreset (ios only) | string (default MediumQuality) | Choose which preset will be used for video compression |
| compressImageMaxWidth | number (default none) | Compress image with maximum width |
| compressImageMaxHeight | number (default none) | Compress image with maximum height |
| compressImageQuality | number (default 1) | Compress image with quality (from 0 to 1, where 1 is best quality) |
2017-01-23 22:13:46 +00:00
| loadingLabelText (ios only) | string (default "Processing assets...") | Text displayed while photo is loading in picker |
2016-06-20 22:38:51 +00:00
#### Response Object
| Property | Type | Description |
| ------------- |:-------------:| :-----|
| path | string | Selected image location |
| width | number | Selected image width |
| height | number | Selected image height |
| mime | string | Selected image MIME type (image/jpeg, image/png) |
| size | number | Selected image size in bytes |
| data | base64 | Optional base64 selected file representation |
2016-06-20 22:38:51 +00:00
2016-05-18 10:07:36 +00:00
## Install
```
2016-08-25 23:48:45 +00:00
npm i react-native-image-crop-picker --save
react-native link react-native-image-crop-picker
2016-05-18 10:07:36 +00:00
```
#### Post-install steps
2016-07-14 20:56:07 +00:00
##### iOS
###### cocoapods users
- Add `platform :ios, '8.0'` to Podfile (!important)
- Add `pod 'RSKImageCropper'` and `pod 'QBImagePickerController'` to Podfile
2016-09-10 22:51:05 +00:00
###### non-cocoapods users
- Drag and drop the ios/ImageCropPickerSDK folder to your xcode project. (Make sure Copy items if needed IS ticked)
- Click on project General tab
- Under `Deployment Info` set `Deployment Target` to `8.0`
- Under `Embedded Binaries` click `+` and add `RSKImageCropper.framework` and `QBImagePicker.framework`
2016-05-18 10:07:36 +00:00
##### Android
- [Optional] If you want to use camera picker in your project, add following to `AndroidManifest.xml`
- `<uses-permission android:name="android.permission.CAMERA"/>`
2016-09-07 00:43:05 +00:00
#### Production build
##### iOS
###### cocoapods users
- You are already done
###### non-cocoapods users
2016-09-07 00:43:05 +00:00
If you are using pre-built frameworks from `ios/ImageCropPickerSDK`, then before deploying app to production you should strip off simulator ARCHs from these, or you can add frameworks from `Libraries/imageCropPicker/Libraries/_framework_name_.xcodeproj/Products/_framework_name_.framework` to Embedded Binaries instead of pre-built ones.
Related issue: https://github.com/ivpusic/react-native-image-crop-picker/issues/61.
2016-09-07 15:03:37 +00:00
Details for second approach:
1. Remove the pre-built frameworks from `Embedded Binaries`
2. Build for Device
4. Add the newly built binaries for both frameworks to `Embedded Binaries` (located at `Libraries/imageCropPicker/Libraries/_framework_name_.xcodeproj/Products/_framework_name_.framework`)
2016-05-18 10:07:36 +00:00
## License
*MIT*