react-cropper
Cropperjs as React component
Demo
Docs
Installation
Install via npm
npm install --save react-cropper
You need cropper.css
in your project which is from cropperjs.
Since this project have dependency on cropperjs, it located in /node_modules/react-cropper/node_modules/cropperjs/dist/cropper.css
or node_modules/cropperjs/dist/cropper.css
for npm version 3.0.0
later
Breaking Change (version >= 2.0.0)
Support forAdded back ref support in 2.1.0.ref
has been removed. Use theonInitialized
method to get thecropper
instance.- To set initial aspect ratio, instead of using
aspectRatio
useinitialAspectRatio
. - Props
data
,canvasData
andcropBoxData
are directly passed on tocropperjs
and their respective setters are not called as earlier. - React Cropper now does not try to use/execute
moveTo
as earlier. Directly use themoveTo
method from thecropper
instance. - React Cropper does not depend on
@types/react-cropper
and provides its own types. Please uninstall/remove@types/react-cropper
as they might ‘cause issues.
Quick Example
import React, {Component} from 'react';
import Cropper from 'react-cropper';
import 'cropperjs/dist/cropper.css'; // see installation section above for versions of NPM older than 3.0.0
// If you choose not to use import, you need to assign Cropper to default
// var Cropper = require('react-cropper').default
class Demo extends Component {
_crop() {
// image in dataUrl
console.log(this.cropper.getCroppedCanvas().toDataURL());
}
onCropperInit(cropper) {
this.cropper = cropper;
}
render() {
return (
<Cropper
src="http://fengyuanchen.github.io/cropper/images/picture.jpg"
style=
// Cropper.js options
initialAspectRatio={16 / 9}
guides={false}
crop={this._crop.bind(this)}
onInitialized={this.onCropperInit.bind(this)}
/>
);
}
}
Options
src
- Type:
string
- Default:
null
<Cropper src="http://fengyuanchen.github.io/cropper/images/picture.jpg" />
alt
- Type:
string
- Default:
picture
crossOrigin
- Type:
string
- Default:
null
dragMode
https://github.com/fengyuanchen/cropperjs#dragmode
scaleX
https://github.com/fengyuanchen/cropperjs#scalexscalex
scaleY
https://github.com/fengyuanchen/cropperjs#scalexscaley
enable
https://github.com/fengyuanchen/cropperjs#enable
disable
https://github.com/fengyuanchen/cropperjs#disable
zoomTo
https://github.com/fengyuanchen/cropperjs#zoomto
rotateTo
https://github.com/fengyuanchen/cropperjs#rotateto
Other options
Accept all options in the docs as properties.
<Cropper
src="http://fengyuanchen.github.io/cropper/images/picture.jpg"
initialAspectRatio={16 / 9}
guides={false}
crop={this._crop}
/>
Methods
Use the cropper
instance from onInitialized
to access cropperjs methods
Build
npm run build
Development
npm start
Author
Fong Kuanghuei(fongkuanghui@gmail.com)
Maintainer
License
MIT