2.0.11 • Published 2 years ago

@mtourj/react-native-image-crop v2.0.11

Weekly downloads
3
License
MIT
Repository
github
Last release
2 years ago

React Native Image Crop

A component for react-native crop image, such as edit user head. This fork introduces fixes, additions and improvements not limited to:

  • Allows you to save crop state so you can remount the component without losing zoom state (zoomData prop)
  • Converted to TypeScript - Type defintions for autocomplete and easier development
  • Better finger to image position mapping (closer ratio)
  • Better state management - Allows for on the fly state/prop changes without any performance hitches
  • Remove deprecated dependencies and use new art
  • and more...

Note: This README is outdated and does not represent this version of react-native-image-crop, will be updated in the near future.

Installation

npm install @mtourj/react-native-image-crop --save

Usage

Example

'use strict';

var React = require('react');
var ReactNative = require('react-native');
var {
    StyleSheet,
    View,
    Text,
    Image,
    ImageEditor,
} = ReactNative;

var Button = require('@remobile/react-native-simple-button');
var ImageCrop = require('@remobile/react-native-image-crop');

module.exports = React.createClass({
    getInitialState() {
        return {
            croppedImageURI: '',
        };
    },
    edit() {
        const cropData = this.imageCrop.getCropData();
        ImageEditor.cropImage(
            'http://v1.qzone.cc/avatar/201407/07/00/24/53b9782c444ca987.jpg!200x200.jpg',
            cropData,
            (croppedImageURI) => {
                this.setState({croppedImageURI})
            },
            (error) => console.log(error)
        );
    },
    render() {
        return (
            <View style={styles.container}>
                <Button onPress={this.edit}>编辑</Button>
                <ImageCrop
                    imageWidth={200}
                    imageHeight={200}
                    ref={(ref)=>this.imageCrop = ref}
                    source={{uri:'http://v1.qzone.cc/avatar/201407/07/00/24/53b9782c444ca987.jpg!200x200.jpg'}} />
                <View style={styles.imageContainer}>
                    <Image
                        source={{uri: this.state.croppedImageURI}}
                        style={styles.image}
                        />
                </View>
            </View>
        );
    }
});

var styles = StyleSheet.create({
    container: {
        flex: 1,
    },
    imageContainer: {
        height: 200,
        marginTop: 20,
        backgroundColor: 'white',
    },
    image: {
        marginLeft: sr.w/2-100,
        width: 200,
        height: 200,
    },
});

Screencasts

crop1 crop2 crop3

Props

  • imageWidth: PropTypes.number.required //must be image real origin imageWidth
  • imageHeight: PropTypes.number.required //must be image real origin imageHeight
  • editRectWidth: PropTypes.number.optional //default: 212 the edit rect width
  • editRectHeight: PropTypes.number.optional //default: 212 the edit rect height
  • editRectRadius: PropTypes.number.optional //default: 106, the rect is round
  • overlayColor: PropTypes.string.optional //default: rgba(0, 0, 0, 0.5)

Functions

  • getCropData() //return ImageEditor.cropImage's cropData widthout displaySize
2.0.11

2 years ago

2.0.10

2 years ago

1.5.3

2 years ago

1.5.2

2 years ago

1.5.1

2 years ago

1.5.0

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.9

2 years ago

2.0.8

2 years ago

1.5.0-F

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.4.2

3 years ago

1.4.1

4 years ago

1.3.7

4 years ago

1.3.6

4 years ago

1.3.5

4 years ago

1.4.0

4 years ago

1.3.8

4 years ago

1.3.4

4 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago