react-mask-editor
TypeScript icon, indicating that this package has built-in type declarations

0.0.2 • Public • Published

React Mask Editor

A drop-in component to add simple image mask editing to your React application. Uses <canvas> for rendering & interaction, with optional support for customizing how the mask is displayed & edited.

Online demo & documentation

Wait, what do you mean by "mask editor"?

You give React Mask Editor an image, and it lets the user 'scribble' over that image to create a 1-bit (black or white) mask. Think Photoshop, Lightroom, or Aperture.

Quick Start

First, some setup:

  • Add to your dependencies with yarn install react-mask-editor
  • Import with import { MaskEditor, toMask } from "react-mask-editor";
  • Include node_modules/react-mask-editor/dist/style.css somewhere in your bundle.

Usage:

  const MyComponent: React.FC<{}> = () => {
    const canvas = React.useRef<HTMLCanvasElement>();

    return <>
      <MaskEditor
        src="https://placekitten/256/256"
        canvasRef={canvas}
      />
      <button
        onClick={() => console.log(toMask(canvas.current))}
      >
        Get Mask
      </button>
    </>
  }

You can customize the editor using additional, optional props:

Prop Description Default
cursorSize Radius (in pixels) of the brush for editing the mask 10
onCursorSizeChange Callback fired when the user changes the brush size via mousewheel. If not provided, mouse wheel events will be ignored. undefined
maskOpacity CSS opacity, decimal between 0 – 1 0.75
maskColor A hex color (with or without leading '#'). #23272d
maskBlendMode The CSS blending mode for the mask layer. Doesn't affect the output mask, just how it renders on top of your source image. normal

Package Sidebar

Install

npm i react-mask-editor

Weekly Downloads

25

Version

0.0.2

License

none

Unpacked Size

23.4 kB

Total Files

10

Last publish

Collaborators

  • doches