paddleocr-js
Version:
JavaScript wrapper for PaddleOCR, providing OCR capabilities in browser and Node.js
191 lines (190 loc) • 4.23 kB
TypeScript
import { OCRResult, TableResult, LayoutResult } from "../typings";
/**
* OCR结果可视化组件
* 用于在浏览器环境中可视化展示OCR识别结果
*/
export declare class ResultVisualizer {
private canvas;
private ctx;
private image;
private result;
private options;
private highlightedIndex;
private mode;
private listeners;
private accessibilityContainer;
private ariaLive;
/**
* 创建OCR结果可视化组件
* @param container 容器元素或其ID
* @param options 可视化选项
*/
constructor(container: string | HTMLElement, options?: Partial<VisualizerOptions>);
/**
* 设置无障碍支持
* @param container 容器元素
*/
private setupAccessibility;
/**
* 处理键盘事件
*/
private handleKeyDown;
/**
* 结果导航
*/
private navigateResults;
/**
* 更新无障碍信息
*/
private updateAccessibilityInfo;
/**
* 应用主题
*/
private applyTheme;
/**
* 设置可视化模式
* @param mode 模式:text, table 或 layout
*/
setMode(mode: "text" | "table" | "layout"): void;
/**
* 加载图像
* @param image 图像源
*/
loadImage(image: string | HTMLImageElement | HTMLCanvasElement): Promise<void>;
/**
* 设置OCR结果
* @param result OCR结果
*/
setResult(result: OCRResult | TableResult | LayoutResult): void;
/**
* 更新可视化选项
* @param options 可视化选项
*/
updateOptions(options: Partial<VisualizerOptions>): void;
/**
* 渲染可视化结果
*/
render(): void;
/**
* 渲染OCR文本结果
* @param result OCR结果
*/
private renderTextResult;
/**
* 渲染表格结果
* @param result 表格结果
*/
private renderTableResult;
/**
* 渲染版面分析结果
* @param result 版面分析结果
*/
private renderLayoutResult;
/**
* 调整画布大小
*/
private resizeCanvas;
/**
* 设置事件监听器
*/
private setupEventListeners;
/**
* 设置调整大小观察器
*/
private setupResizeObserver;
/**
* 处理鼠标移动事件
*/
private handleMouseMove;
/**
* 处理点击事件
*/
private handleClick;
/**
* 查找元素索引
*/
private findElementIndex;
/**
* 查找单元格索引
*/
private findCellIndex;
/**
* 查找区域索引
*/
private findRegionIndex;
/**
* 判断点是否在多边形内
*/
private pointInPolygon;
/**
* 根据索引获取元素
*/
private getElementByIndex;
/**
* 添加事件监听器
*/
addEventListener(event: string, listener: EventListener): void;
/**
* 移除事件监听器
*/
removeEventListener(event: string, listener: EventListener): void;
/**
* 触发事件
*/
private triggerEvent;
/**
* 导出为图像
*/
exportImage(type?: "png" | "jpeg" | "webp", quality?: number): string;
/**
* 清除显示
*/
clear(): void;
/**
* 销毁组件
*/
dispose(): void;
/**
* 设置触控支持
*/
private setupTouchEvents;
private touchStartX;
private touchStartY;
private isTouching;
/**
* 处理触摸开始事件
*/
private handleTouchStart;
/**
* 处理触摸移动事件
*/
private handleTouchMove;
/**
* 处理触摸结束事件
*/
private handleTouchEnd;
/**
* 导出为无障碍文本
*/
exportAccessibleText(): string;
}
/**
* 可视化选项接口
*/
export interface VisualizerOptions {
width: number;
height: number;
boxColor: string;
textColor: string;
backgroundColor: string;
fontSize: number;
padding: number;
showConfidence: boolean;
showBoxId: boolean;
interactive: boolean;
autoResize: boolean;
highlightColor: string;
lineWidth: number;
enableAccessibility?: boolean;
theme?: "default" | "dark" | "light" | "highContrast";
}