shot-web-screen
Version:
截屏、截图插件、capture screen
78 lines (77 loc) • 2.99 kB
TypeScript
import { TEXTPOSITIONINFO, TEXTRENDERINFO, OPTION, CUTBOXINFO, TEXTCONFIG, TEXTLINECONFIG, JUDGERESULT } from '../types/index';
/**
* @func 绘制文本
* @desc dom渲染文本比 canvas渲染文本 ,多出padding大小的差距
* @param {}
* @return {}
*/
declare class drawText {
dpr: number;
padding: number;
letterSpacing: number;
baseFontSize: number;
minWidth: number;
showTextDom: HTMLElement | null;
cutBoxInfo: CUTBOXINFO;
ctx: CanvasRenderingContext2D | null;
opearteInfo: TEXTRENDERINFO | null;
constructor();
/**
* @func 向外层提供可以初始化数据的函数
* @desc
* @param {
* ctx 执行上下文
* cutBoxInfo 剪裁框信息
* isHaveEdit 当前绘制所有文本中是否存在需要编辑的文本
* }
* @return {}
*/
initData(ctx: CanvasRenderingContext2D, cutBoxInfo: CUTBOXINFO, isHaveEdit?: boolean): void;
/**
* @func 绘制文本
* @desc
* @param {
* ctx 执行上下文
* info 文本信息
* }
* @return {}
*/
draw(ctx: CanvasRenderingContext2D, info: TEXTRENDERINFO): Path2D;
calcFontSize(baseFontSize: number, size: number): number;
setOptions(ctx: CanvasRenderingContext2D, option: OPTION, isEdit: boolean): void;
renderWrapText(ctx: CanvasRenderingContext2D, renderTextList: Array<TEXTCONFIG>): void;
/**
* @func 绘制辅助点位,用于展示图形选中状态,同时支持文本编辑
* @desc
* @param {}
* @return {}
*/
drawAuxiliaryDom(positionInfo: TEXTPOSITIONINFO, cutBoxInfo: CUTBOXINFO): void;
getTextConfig(context: CanvasRenderingContext2D, positionInfo: TEXTPOSITIONINFO, fontSize: number): TEXTLINECONFIG;
drawTextLedge(ctx: Path2D, start: Array<number>, width: number, height: number): void;
createTextDom(ctx: CanvasRenderingContext2D): void;
addListener(): void;
/**
* @func 判断文本操作方法:移动
* @desc 注意:由于是外层使用,需要指定当前的this,否则this指向存在问题
* @param {}
* @return {
* 判断成功后,返回对应的mouse移动事件处理方法、鼠标状态或 抑或是其他信息
* 其中返回函数支持参数依次为
* startPoistion 图形操作之前、已经转为像素的点位或路径信息
* offsetX x方向、 鼠标移动偏移大小
* offsetY y方向、 鼠标移动偏移大小
* }
*/
judgeOperate(info: TEXTRENDERINFO, ctx: CanvasRenderingContext2D, x: number, y: number): JUDGERESULT | undefined;
/**
* @func 处理文本移动后的位置限制,保存文本移动处于整个剪裁框内
* @desc 移动过程中需要将文本原来的宽高作为最大的宽高度
* @param {}
* @return {}
*/
handleNewData(positionInfo: TEXTPOSITIONINFO): TEXTPOSITIONINFO;
destroy(): void;
}
declare const _default: drawText;
export default _default;