UNPKG

@jianghh/canvas-graffiti

Version:

canvas涂鸦库,支持手写、笔写、鼠标,选中元素,并且移动、删除等功能。集成撤销重做操作。

81 lines (80 loc) 2.66 kB
import { AllowType, CustomizeHandle, Options, Point, ToolOptions, ToolType } from './types'; import { CacheGraffiti } from './stack'; import { GraffitiEle } from './element'; import type { EleGroup } from './element/group'; import { GraffitiPlugin } from './plugin'; export * from './types'; export * from './element'; export * from './stack'; export declare const SYSTEM_COLOR = "#1493ee"; export declare class CanvasGraffiti implements ToolOptions { #private; options: Options; customizeHandle: CustomizeHandle; el: HTMLCanvasElement; private cacheStack; beginPoint: { x: number; y: number; }; endPoint: { x: number; y: number; } | undefined; points: Point[]; bufferCanvas: HTMLCanvasElement | undefined; private allowType; private allowButton; graffitiEleList: GraffitiEle[]; eleGroup: EleGroup | null; get width(): number; private set width(value); get height(): number; private set height(value); set lineWidth(val: number); get lineWidth(): number; private set dpr(value); get dpr(): number; set strokeStyle(val: string | CanvasGradient | CanvasPattern); get strokeStyle(): string | CanvasGradient | CanvasPattern; set fillStyle(val: string | CanvasGradient | CanvasPattern); get fillStyle(): string | CanvasGradient | CanvasPattern; set shadowColor(val: string); get shadowColor(): string; set shadowBlur(val: number); get shadowBlur(): number; private get tool(); set toolName(value: ToolType); get toolName(): ToolType; get ctx(): CanvasRenderingContext2D; get bufferCtx(): CanvasRenderingContext2D; constructor(options: Options, customizeHandle?: CustomizeHandle); /** * 初始化 */ private init; updateAllowType(types: AllowType[]): void; plugin(...args: GraffitiPlugin[]): void; private bindCanvasEventListener; private removeEventListener; pointerdown(event: PointerEvent): void; pointermove(event: PointerEvent): void; pointerup(event: PointerEvent): void; revoke(): void; redo(): void; updateCanvasSize(size: { width?: number; height?: number; }): void; flush(): void; clear(): void; emitStackChange(): void; drawEles(graffitiEleList?: GraffitiEle[]): void; getCanvasData(): CacheGraffiti; setCanvasData(graffiti: CacheGraffiti): void; createBufferCanvas(): void; destroy(isRemoveCanvas?: boolean): void; toDataURL(type?: string, encoderOptions?: number): string; toPicFile(filename?: string): Promise<File>; } export default CanvasGraffiti;