Socket
Book a DemoInstallSign in
Socket

@mtourj/react-native-image-crop

Package Overview
Dependencies
Maintainers
1
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mtourj/react-native-image-crop

A dynamic image cropping component with gestures and web support

latest
Source
npmnpm
Version
2.0.11
Version published
Maintainers
1
Created
Source

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

Keywords

react-native

FAQs

Package last updated on 28 Oct 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

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.