zoom-image-data
Version:
zoom-image-data
72 lines (71 loc) • 2.24 kB
TypeScript
import { TransferToWindow } from 'transfer-to-window';
type ConstructorParam = ConstructorParameters<typeof TransferToWindow>[0];
type param = ConstructorParam & {
/** 输入数据 */
inData: ArrayBuffer;
/** 输出数据 */
outData: ArrayBuffer;
/** 单元格宽高比例; 默认值: 1 */
cellRatio?: number;
/** 单元格基础尺寸; 默认值: 10 */
cellWH?: number;
/** 各单元格之间有分割线; 默认值: false */
splitCell?: boolean;
/** 单元格分割线的像素值; 默认值: 2 */
splitCellSize?: number;
};
declare class ZoomImageData extends TransferToWindow {
/** 输入源数据 */
sourceData: Uint32Array;
/** 输入源数据宽 */
sourceW: number;
/** 输入源数据高 */
sourceH: number;
/** 输出数据 */
outData: Uint32Array;
/** 各单元格之间有分割线; 默认值: false */
splitCell: boolean;
/** 单元格分割线的像素值; 默认值: 2 */
splitCellSize: number;
constructor(param: param);
/**
* Update outputData
*/
update(): void;
/**
* Translate on outdata
* @param dx
* @param dy
* @param silent Whether update outData
*/
translate(dx: number, dy: number, silent?: boolean): void;
/**
* Scale ratio multiple at position(cx,cy) on outdata
* @param cx
* @param cy
* @param ratio
* @param silent Whether update outData
*/
zoom(cx: number, cy: number, ratio: number, silent?: boolean): void;
/**
* 以InCoor:(cx,cy)为中心缩放到scale比例
* @param cx
* @param cy
* @param scale
* @param silent 是否更新outData
*/
zoomToByInCoor(cx: number, cy: number, scale: number, silent?: boolean): void;
/**
* 将输入数据完整放置于输出窗口的正中间;效果类似于CSS效果:
* background-size: contain;
* background-repeat: no-repeat;
* background-position: center;
* @param silent Whether update outData
*/
resize(silent?: boolean): void;
/**
* 坐标(x,y)是否位于输入视框内
*/
inCoorIsIn(x: number, y: number): boolean;
}
export { ZoomImageData, ZoomImageData as default };