paintpad
v2.0.5
Canvas component which allows freeform painting.
demo
yarn add paintpad
npm install --save paintpad
<script src="https://unpkg.com/paintpad/dist/index.js" defer></script>
<paint-pad width="300px" height="300px" lineWidth="15" lineWidthMin="5" lineWidthMax="25" color="#ffdab9" hasSlider="true" hasColorPicker="true" isClearable="true" isDownloadable="true" isStateChangeable="true"></paint-pad>
import { PaintPad } from "paintpad";const paintPad = new PaintPad({ width: "300px", height: "300px", lineWidth: 15, lineWidthMin: 5, lineWidthMax: 25, color: "#ffdab9", hasSlider: true, hasColorPicker: true, isClearable: true, isDownloadable: true, isStateChangeable: true,});document.getElementById("paint-pad-container").append(paintPad);
// app.module.tsimport { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';@NgModule({ ... schemas: [CUSTOM_ELEMENTS_SCHEMA] ...})
// app.component.html<paint-pad #paintPad width="300px" color="#ffdab9"></paint-pad>
// app.component.tsimport "paintpad";export class AppComponent { @ViewChild('paintPad') public paintPad!: ElementRef; public clear(): void {this.paintPad.nativeElement.clear(); }}
import "paintpad";function App() { const paintPad = useRef(null); const clear = () => paintPad.current.clear(); return <paint-pad ref={paintPad} width="300px" color="#ffdab9"></paint-pad>;}
attribute | type | description | default |
---|---|---|---|
width | string | width of the canvas | '500px' |
height | string | height of the canvas | '500px' |
lineWidth | number | initial thickness of the pencil | 10 |
lineWidthMin | number | minimal thickness of the pencil | 1 |
lineWidthMax | number | maximum thickness of the pencil | 30 |
color | string | initial color of the pencil (must be a hexcode of 6 characters) | '#000000' |
imageName | string | name of the downloaded image | 'paintpad' |
hasSlider | boolean | if the user can change the thickness of the pencil | true |
hasColorPicker | boolean | if the user can change the color of the pencil | true |
isClearable | boolean | if the user can clear the canvas | true |
isDownloadable | boolean | if the user can download an image of the canvas | true |
isStateChangeable | boolean | if the user can undo and redo the state to the canvas | true |
method | parameters | description |
---|---|---|
setWidth | width: string | sets the width of the canvas |
setHeight | height: string | sets the height of the canvas |
setLineWidth | lineWidth: number | sets the thickness of the pencil |
setLineWidthMin | lineWidth: number | sets the minimal thickness of the pencil |
setLineWidthMax | lineWidth: number | sets the maximum thickness of the pencil |
setColor | color: string | sets the color of the pencil |
setImageName | name: string | sets the name of the downloaded image |
setSlider | isVisible: boolean | if the user can change the thickness of the pencil |
setColorPicker | isVisible: boolean | if the user can change the color of the pencil |
setClearable | isVisible: boolean | if the user can clear the canvas |
setDownloadable | isVisible: boolean | if the user can download an image of the canvas |
setStateChangeable | isVisible: boolean | if the user can undo and redo the state to the canvas |
clear | clears the canvas | |
download | downloads an image of the canvas | |
undo | changes the state of the canvas to the previous state | |
redo | changes the state of the canvas to the next state | |
getDataURL | returns the data url of the canvas | |
getBlob | callback: BlobCallback type?: string | undefined quality?: number | gets the blob of the canvas in a callback function |