| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- """
- 模式设置(新建/编辑)
- """
- import streamlit as st
- from PIL import Image
- from typing import Dict, Tuple
- import sys
- from pathlib import Path
- # 添加父目录到路径
- sys.path.insert(0, str(Path(__file__).parent.parent))
- try:
- from ..table_line_generator import TableLineGenerator
- except ImportError:
- from table_line_generator import TableLineGenerator
- from .display_controls import create_display_settings_section, create_undo_redo_section
- from .analysis_controls import create_analysis_section
- def setup_new_annotation_mode(
- ocr_data: list,
- image: Image.Image,
- display_config: Dict
- ) -> Tuple:
- """
- 设置新建标注模式
-
- Returns:
- (generator, structure, undo_stack, line_width, display_mode, zoom_level, show_line_numbers)
- """
- # 🔑 获取当前工具类型
- tool = st.session_state.get('current_tool', 'ppstructv3')
-
- # 初始化生成器
- if 'generator' not in st.session_state:
- st.session_state.generator = TableLineGenerator(image, ocr_data)
-
- # 分析控件
- structure = create_analysis_section(
- st.session_state.generator,
- tool=tool # 🔑 传入工具类型
- )
-
- # 显示控件
- line_width, display_mode, zoom_level, show_line_numbers = create_display_settings_section(
- display_config
- )
-
- # 撤销/重做
- undo_stack = []
-
- return (
- st.session_state.generator,
- structure,
- undo_stack,
- line_width,
- display_mode,
- zoom_level,
- show_line_numbers
- )
- def setup_edit_annotation_mode(
- structure: Dict,
- image: Image.Image,
- display_config: Dict
- ) -> Tuple:
- """
- 设置编辑标注模式
-
- Returns:
- (image, line_width, display_mode, zoom_level, show_line_numbers)
- """
- # 显示控件
- line_width, display_mode, zoom_level, show_line_numbers = create_display_settings_section(
- display_config
- )
-
- # 撤销/重做控件
- create_undo_redo_section()
-
- return (
- image,
- line_width,
- display_mode,
- zoom_level,
- show_line_numbers
- )
|