@neosjs/screen-shot
Version:
JS截屏插件
211 lines (208 loc) • 5.43 kB
TypeScript
type cutOutBoxBorder = {
x: number;
y: number;
width: number;
height: number;
index: number;
option: number;
};
type movePositionType = {
moveStartX: number;
moveStartY: number;
};
type positionInfoType = {
startX: number;
startY: number;
width: number;
height: number;
};
type textInfoType = {
positionX: number;
positionY: number;
color: string;
size: number;
};
type zoomCutOutBoxReturnType = {
tempStartX: number;
tempStartY: number;
tempWidth: number;
tempHeight: number;
};
type toolPositionValType = 'left' | 'right' | 'center';
type hideBarInfoType = {
state: boolean;
color?: string;
fillWidth?: number;
fillHeight?: number;
fillState?: boolean;
};
type drawCutOutBoxReturnType = {
startX: number;
startY: number;
width: number;
height: number;
};
type toolIcoType = 'square' | 'round' | 'right-top' | 'brush' | 'mosaicPen' | 'text' | 'separateLine' | 'save' | 'undo' | 'close' | 'confirm';
type toolbarType = {
id: number;
title: string;
};
type crcEventType = {
state: boolean;
handler?: () => void;
};
type genericMethodPostbackType = {
code: number;
data: null | boolean | number | Record<string, any>;
msg: string;
};
type screenShotType = {
enableWebRtc?: boolean;
screenFlow?: MediaStream;
level?: number;
canvasWidth?: number;
canvasHeight?: number;
onComplete?: (imgInfo: {
base64: string;
cutInfo: positionInfoType;
}) => void;
onClose?: () => void;
onTrigger?: (res: {
code: number;
msg: string;
displaySurface: string | null;
displayLabel: string | null;
}) => void;
onLoaded?: (res: {
code: number;
msg: string;
displaySurface: string | null;
displayLabel: string | null;
}) => void;
onCancel?: (res: {
code: number;
msg: string;
errorInfo: string;
}) => void;
onSave?: (code: number, msg: string) => void;
position?: {
top?: number;
left?: number;
};
clickCutFullScreen?: boolean;
showToolIcon?: toolIcoType[];
showScreenData?: boolean;
confirmBtnText?: string;
imgSrc?: string;
loadCrossImg?: boolean;
proxyUrl?: string;
screenShotDom?: HTMLElement | HTMLDivElement | HTMLCanvasElement;
cropBoxInfo?: {
x: number;
y: number;
w: number;
h: number;
};
webrtcReplyTime?: number;
wrcImgPosition?: {
x: number;
y: number;
w: number;
h: number;
};
lockScroll?: boolean;
maskColor?: {
r: number;
g: number;
b: number;
a: number;
};
toolPosition?: toolPositionValType;
writeBase64?: boolean;
hiddenScrollBar?: hideBarInfoType;
webrtcWindowMode?: boolean;
rightClickEvent?: crcEventType;
cutDotColor?: string;
cutDotSize?: number;
cutDotRound?: boolean;
maxUndoNum?: number;
useRatioArrow?: boolean;
imgAutoFit?: boolean;
saveImgTitle?: string;
dpr?: number;
};
declare class ScreenShot {
readonly version: string;
readonly buildTime: string;
private readonly data;
private readonly videoController;
private screenShotContainer;
private screenShotDom;
private toolController;
private screenShotImageController;
private screenShotCanvas;
private textInputController;
private optionController;
private optionIcoController;
private cutBoxSizeContainer;
private plugInParameters;
private webrtcReplyTime;
private keyboardEventHandle;
private drawGraphPosition;
private tempGraphPosition;
private wrcImgPosition;
private hiddenScrollBar;
private wrcWindowMode;
private cutOutBoxBorderArr;
private borderOption;
private movePosition;
private dragFlag;
private clickCutFullScreen;
private getFullScreenStatus;
private drawGraphPrevX;
private drawGraphPrevY;
private degreeOfBlur;
private dpr;
private fullScreenDiffHeight;
private position;
private imgSrc;
private loadCrossImg;
private mouseInsideCropBox;
private proxyUrl;
private drawStatus;
private captureStream;
private cropBoxInfo;
private textInputPosition;
private placement;
private customRightClickEvent;
constructor(options: screenShotType);
getCanvasController(): HTMLCanvasElement | null | undefined;
destroy(): void;
complete(): void;
private load;
private loadScreenFlowData;
private wrcScreenShot;
/**
* 初始化截图容器
* @param triggerCallback
* @param context
* @param screenShotContainer
* @private
*/
private initScreenShot;
private mouseDownEvent;
private mouseMoveEvent;
private mouseUpEvent;
private croppingBoxCallerCallback;
private toolBarCallerCallback;
/**
* 显示最新的画布状态
* @private
*/
private showLastHistory;
private setGlobalParameter;
private setOptionalParameter;
private createEvent;
}
export { ScreenShot as default };
export type { crcEventType, cutOutBoxBorder, drawCutOutBoxReturnType, genericMethodPostbackType, hideBarInfoType, movePositionType, positionInfoType, screenShotType, textInfoType, toolIcoType, toolPositionValType, toolbarType, zoomCutOutBoxReturnType };