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, { useRef } from "react";
import Cropper from "react-cropper";
import "cropperjs/dist/cropper.css";
const Demo: React.FC = () => {
const cropperRef = useRef<HTMLImageElement>(null);
const onCrop = () => {
const imageElement: any = cropperRef?.current;
const cropper: any = imageElement?.cropper;
console.log(cropper.getCroppedCanvas().toDataURL());
};
return (
<Cropper
src="https://raw.githubusercontent.com/roadmanfong/react-cropper/master/example/img/child.jpg"
style={{ height: 400, width: "100%" }}
// Cropper.js options
initialAspectRatio={16 / 9}
guides={false}
crop={onCrop}
ref={cropperRef}
/>
);
};
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.
Methods
Use the cropper
instance from onInitialized
to access cropperjs methods
Build
npm run build
Development
npm start
Author
Maintainer
License
MIT