UNPKG

paddleocr-js

Version:

JavaScript wrapper for PaddleOCR, providing OCR capabilities in browser and Node.js

191 lines (190 loc) 4.23 kB
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"; }