@jianghh/canvas-graffiti
Version:
canvas涂鸦库,支持手写、笔写、鼠标,选中元素,并且移动、删除等功能。集成撤销重做操作。
81 lines (80 loc) • 2.66 kB
TypeScript
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;