npm.io
1.0.2 • Published 10 years ago

react-native-image-crop

Licence
MIT
Version
1.0.2
Deps
0
Vulns
0
Weekly
0
Stars
48

react-native-image-crop

Image crop editor component for iOS and Android. Move the image in the area and crop it.

Demo

Installation

This component is dependent of react-native-image-resizer (See Github) which needs to be installed and linked to your project before.

If you don't have rnpm installed on your computer, install it first:

npm install -g rnpm

Then, install and link the peer dependency:

npm install --save react-native-image-resizer
rnpm link

Now you can install this component

npm install --save react-native-image-crop

Usage

Import the component into the file you want to use it:

import ImageCrop from 'react-native-image-crop';

Use the component directly in your code. The component will automatically fit the parent view.

<View>
	<ImageCrop
		ref={(c) => { this.imageCrop = c; }}
		cropWidth={500}
		cropHeight={500}
		image={{
			uri: 'https://c1.staticflickr.com/9/8073/28582653114_d154039cb9_k.jpg',
		}}
	/>
</View>

To crop the image, you can call the method crop() from the component

onButtonPress() {
	this.imageCrop.crop().then((uri) => {
	  // uri contains the cropped image
	});
}

Note: If you use a large image, you might need to preload it before using this component.

Properties

| Property | Type | Description | |--- |--- |--- | | image| ImageSource
https://facebook.github.io/react-native/docs/image.html#source | Source of the image.
This property is mandatory | | containerPaddingLeft | Number | Apply padding on the left of the image
Default: 20 | | containerPaddingRight | Number | Apply padding on the right of the image
Default: 20 | | containerPaddingTop | Number | Apply padding at the top of the image
Default: 20 | | containerPaddingBottom | Number | Apply padding at the bottom of the image
Default: 20 | | cropWidth | Number | Enforce the cropped width of the image. This property must be used with cropHeight | | cropHeight | Number | Enforce the cropped height of the image. This property must be used with cropWidth | | cropQuality | Number | Image quality, from 0 to 100
Default: 80 |

Methods

| Method | Description | Example | |--- |--- |--- | | crop() | Crop and, if necessary, resize the image. This method returns a Promise. | this.imageCrop.crop().then((uri) => { this.setState({ uri })}) |

Todo

  • Pinch and zoom. Add new properties defaultZoom, minZoom, maxZoom

Keywords