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

164 lines
4.4 KiB
Markdown
Raw Normal View History

2016-05-18 10:07:36 +00:00
# react-native-image-crop-picker
iOS/Android image picker with support for multiple images and cropping
## Result
#### iOS
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">
#### Android
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/android_single_pick.png">
<img width=200 title="iOS Crop" src="https://github.com/ivpusic/react-native-image-crop-picker/blob/master/images/android_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/android_multiple.png">
## Usage
Import library
```javascript
import ImagePicker from 'react-native-image-crop-picker';
```
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-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 |
| maxFiles (ios only) | number (default 5) | Max number of files to select when using `multiple` option |
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
`npm install react-native-image-crop-picker --save`
#### iOS
```
pod 'react-native-image-crop-picker', :path => '../node_modules/react-native-image-crop-picker/ios'
```
2016-07-14 20:56:07 +00:00
[- Step By Step tutorial](https://github.com/ivpusic/react-native-image-crop-picker#ios-step-by-step-installation)
2016-05-18 10:07:36 +00:00
#### Android
```gradle
// file: android/settings.gradle
...
include ':react-native-image-crop-picker'
project(':react-native-image-crop-picker').projectDir = new File(settingsDir, '../node_modules/react-native-image-crop-picker/android')
```
```gradle
// file: android/app/build.gradle
...
dependencies {
...
compile project(':react-native-image-crop-picker')
}
```
```java
2016-07-27 00:30:48 +00:00
// file: MainApplication.java
2016-05-18 10:07:36 +00:00
...
import com.reactnative.picker.PickerPackage; // import package
2016-07-27 00:30:48 +00:00
public class MainApplication extends ReactApplication {
...
2016-05-18 10:07:36 +00:00
/**
* A list of packages used by the app. If the app uses additional views
* or modules besides the default ones, add more packages here.
*/
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new PickerPackage() // Add package
);
}
...
}
```
## How it works?
It is basically wrapper around few libraries
#### Android
- Native Image Picker
- uCrop
#### iOS
- QBImagePickerController
- RSKImageCropper
2016-07-14 20:52:37 +00:00
# iOS Step by Step installation
- Create new react native project with Pods support
```
react-native init picker
cd picker
npm i react-native-image-crop-picker --save
cd ios
pod init
```
- Inside `ios` directory change `Podfile` to following
```
platform :ios, '8.0'
target 'picker' do
source 'https://github.com/CocoaPods/Specs.git'
2016-08-06 02:23:44 +00:00
pod 'React', :path => '../node_modules/react-native'
2016-07-14 20:52:37 +00:00
pod 'react-native-image-crop-picker', :path => '../node_modules/react-native-image-crop-picker/ios'
end
```
- Run
```
pod install
```
2016-08-04 14:58:22 +00:00
- open **project_name.xcworkspace**
- Add `$(inherited)` to other linker flags under Build Settings
2016-07-14 20:52:37 +00:00
Done!
2016-05-18 10:07:36 +00:00
## License
*MIT*