UNPKG

intellicrop

Version:

Simple JavaScript solution to edge detection assisted image cropping.

90 lines (88 loc) 3.17 kB
type Pt = [number, number]; interface Corners { tl: Pt; tr: Pt; br: Pt; bl: Pt; } interface EdgeCenters { t: Pt; r: Pt; b: Pt; l: Pt; } interface ViewCenter { c: Pt; } export interface CropperTheme { /** Color used for background and margin */ backgroundColor?: string; /** Color used for tinting the surroundings of the selected area */ surroundingOverlayColor?: string; /** Radius of corner grabbers in rem */ cornerGrabberRadius?: number; /** Color of corner grabbers */ cornerGrabberColor?: string; /** Line thickness of edges in rem (0 to hide edges) */ edgeThickness?: number; /** Color of edges */ edgeColor?: string; /** Radius of edge grabbers in rem (0 to hide edge grabbers) */ edgeGrabberRadius?: number; /** Color of edge grabbers */ edgeGrabberColor?: string; /** Radius of center grabber in rem (0 to hide center grabber) */ centerGrabberRadius?: number; /** Color of center grabber */ centerGrabberColor?: string; /** Factor by which to expand grabbers when hovered */ grabberExpansionFactor?: number; /** Factor for scaling grabber hitboxes (increase for touch devices) */ grabberHitboxFactor?: number; /** Line thickness of crosslines in rem (0 to hide crosslines) */ crossLineThickness?: number; /** Color of crosslines */ crossLineColor?: string; /** Radius of zoom lens in rem (0 to hide zoom lens) */ zoomLensRadius?: number; /** Margin between zoom lens and grabber in rem */ zoomLensMargin?: number; /** Zoom factor of zoom lens */ zoomLensFactor?: number; /** Border thickness of zoom lens in rem */ zoomLensBorderThickness?: number; /** Border color of zoom lens */ zoomLensBorderColor?: string; /** Overlay color of zoom lens */ zoomLensOverlayColor?: string; } export interface CropperOptions { /** Use edge detection for placing draggable corners */ useEdgeDetection?: boolean; /** Theme to be used for Cropper UI */ theme?: CropperTheme; /** Canvas element to show edge detection results */ debugCanvas?: HTMLCanvasElement; /** Log debug information in console */ debugLogs?: boolean; /** Initial placement draggable corners (overrides useEdgeDetection) */ corners?: Corners; /** Initial amount of clockwise 90° rotations */ rotations?: number; } export default class Cropper { static initialization(): Promise<void>; static isReady(): boolean; constructor(canvas: HTMLCanvasElement, img: HTMLImageElement, options?: CropperOptions); /** Discards event listeners */ discard(): void; setDragged(dragged: keyof Corners | keyof EdgeCenters | keyof ViewCenter | undefined): void; setHovered(hovered: keyof Corners | keyof EdgeCenters | keyof ViewCenter | undefined): void; /** Returns image cropped according to current position of draggable corners */ getResult(type?: string, quality?: number): HTMLImageElement; rotateLeft(): void; rotateRight(): void; getRotations(): number; getCorners(): Corners; } //# sourceMappingURL=intellicrop.d.ts.map