UNPKG

smooth-signature-v

Version:

前端H5带笔锋手写签名,支持PC端和移动端,无框架限制,Vue、React等均可使用

79 lines (78 loc) 2.46 kB
interface IOptions { width?: number; height?: number; color?: string; bgColor?: string; scale?: number; openSmooth?: boolean; minWidth?: number; maxWidth?: number; minSpeed?: number; maxWidthDiffRate?: number; maxHistoryLength?: number; onStart?: (event: any) => void; onEnd?: (event: any) => void; } interface IPoint { x: number; y: number; t: number; speed?: number; distance?: number; lineWidth?: number; } interface IRadianData { val: number; pos: -1 | 1; } declare class SmoothSignature { constructor(canvas: HTMLCanvasElement, options: IOptions); canvas: HTMLCanvasElement; ctx: CanvasRenderingContext2D; width: number; height: number; scale: number; color: string; bgColor: string; canDraw: boolean; openSmooth: boolean; minWidth: number; maxWidth: number; minSpeed: number; maxWidthDiffRate: number; points: IPoint[]; canAddHistory: boolean; historyList: string[]; maxHistoryLength: number; onStart: any; onEnd: any; init(canvas: HTMLCanvasElement, options?: IOptions): void; addListener: () => void; removeListener: () => void; onDrawStart: (e: any) => void; onDrawMove: (e: any) => void; onDraw: (prePoint: any, point: any) => void; onDrawEnd: (e: any) => void; getLineWidth: (speed: number) => number; getRadianData: (x1: number, y1: number, x2: number, y2: number) => IRadianData; getRadianPoints: (radianData: IRadianData, x: number, y: number, halfLineWidth: number) => { x: number; y: number; }[]; initPoint: (event: any) => void; drawSmoothLine: (prePoint: any, point: any) => void; drawNoSmoothLine: (prePoint: any, point: any) => void; drawCurveLine: (x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, lineWidth: number) => void; drawTrapezoid: (point1: any, point2: any, point3: any, point4: any) => void; drawBgColor: () => void; drawByImageUrl: (url: string) => void; addHistory: () => void; clear: () => void; undo: () => void; toDataURL: (type?: string, quality?: number) => string; getPNG: () => string; getJPG: (quality?: number) => string; isEmpty: () => boolean; getRotateCanvas: (degree?: number) => HTMLCanvasElement; } export default SmoothSignature;