76 lines
2 KiB
TypeScript
76 lines
2 KiB
TypeScript
import type Cropper from 'cropperjs';
|
|
export interface CustomCropper extends Cropper {
|
|
url: '';
|
|
cropBoxData: Cropper.ImageData;
|
|
canvasData: Cropper.ImageData;
|
|
cropper?: HTMLDivElement;
|
|
}
|
|
export declare enum OutputType {
|
|
BASE64 = "base64",
|
|
BLOB = "blob",
|
|
BLOB_URL = "blobURL"
|
|
}
|
|
export type IOutputTypeUnion = `${OutputType}`;
|
|
export interface ICropperOptions {
|
|
cropperInstance?: CustomCropper | Cropper;
|
|
src?: string;
|
|
crossOrigin?: '' | 'anonymous' | 'use-credentials';
|
|
cropperJsOpts?: ICropOpts;
|
|
gifJsOptions?: IGifOpts;
|
|
outputType?: IOutputTypeUnion;
|
|
}
|
|
export interface IGifOpts {
|
|
repeat?: number;
|
|
quality?: number;
|
|
workers?: number;
|
|
workerScript?: string;
|
|
background?: string;
|
|
width?: number;
|
|
height?: number;
|
|
transparent?: string | null;
|
|
dither?: boolean;
|
|
debug?: boolean;
|
|
}
|
|
export interface ICropOpts {
|
|
width?: number;
|
|
height?: number;
|
|
scaleX?: number;
|
|
scaleY?: number;
|
|
x?: number;
|
|
y?: number;
|
|
background?: string;
|
|
rotate?: number;
|
|
left?: number;
|
|
top?: number;
|
|
}
|
|
export interface IImageData {
|
|
width: number;
|
|
height: number;
|
|
naturalWidth: number;
|
|
naturalHeight: number;
|
|
}
|
|
export interface ICommonCropOptions {
|
|
cropperJsOpts: Required<ICropOpts>;
|
|
imageData: IImageData;
|
|
cropBoxData: Cropper.CropBoxData;
|
|
}
|
|
export declare class SuperImageCropper {
|
|
private cropperJsInstance?;
|
|
private parsedFrameInfo;
|
|
private commonCropOptions;
|
|
private frameCropperInstance;
|
|
private inputCropperOptions;
|
|
private imageTypeInfo;
|
|
crop(inputCropperOptions: ICropperOptions): Promise<string | Blob>;
|
|
private init;
|
|
private cleanUserInput;
|
|
private userInputValidator;
|
|
private normalizeRotate;
|
|
private imageDataFormat;
|
|
private decodeGIF;
|
|
private ensureFrameCropperExist;
|
|
private cropFrames;
|
|
private saveGif;
|
|
private checkIsStaticImage;
|
|
private handleStaticImage;
|
|
}
|