Skip to content

API文档

本文档详细介绍图像分割工具的API接口,包括类方法、函数参数和返回值。

🏗️ 核心类

ImageSplitterApp

主要的应用程序类,负责整个GUI界面和业务逻辑。

构造函数

python
def __init__(self, root)

参数

  • root (tk.Tk): 主窗口对象

功能

  • 初始化应用程序
  • 设置窗口标题和尺寸
  • 创建必要的文件夹
  • 创建GUI组件
  • 绑定事件处理器

主要方法

create_widgets()
python
def create_widgets(self)

功能:创建主界面组件 返回值:None

实现细节

  • 创建主容器
  • 创建标题区域
  • 创建标签页控件
  • 创建状态栏
create_main_tab()
python
def create_main_tab(self)

功能:创建主要功能标签页 返回值:None

实现细节

  • 设置三栏布局
  • 创建文件选择区域
  • 创建参数设置区域
  • 创建操作按钮区域
create_settings_tab()
python
def create_settings_tab(self)

功能:创建设置标签页 返回值:None

实现细节

  • 创建输出设置区域
  • 创建高级设置区域
  • 绑定控件事件
split_images()
python
def split_images(self, cols, rows, mode)

参数

  • cols (int): 列数
  • rows (int): 行数
  • mode (str): 保存模式 ('separate_folders' 或 'date_folders')

功能:批量分割图像 返回值:None

实现细节

  • 在独立线程中执行
  • 复制文件到上传文件夹
  • 调用单张图片分割方法
  • 更新进度和状态
  • 完成后询问是否合并PDF
split_image_into_tiles()
python
def split_image_into_tiles(self, image_path, cols, rows, mode='separate_folders', output_folder=None)

参数

  • image_path (str): 图像文件路径
  • cols (int): 列数
  • rows (int): 行数
  • mode (str): 保存模式
  • output_folder (str, optional): 输出文件夹路径

返回值

  • list[str]: 生成的图块文件路径列表

实现细节

  • 打开图像并计算图块尺寸
  • 根据模式创建输出文件夹
  • 按网格裁剪图像
  • 保存图块并返回路径列表
merge_to_pdf()
python
def merge_to_pdf(self, specific_images=None)

参数

  • specific_images (list, optional): 指定的图像列表

功能:将图像合并为PDF 返回值:None

实现细节

  • 收集图像文件
  • 在独立线程中执行PDF合并
  • 按文件名排序
  • 创建PDF并保存
show_demo()
python
def show_demo(self)

功能:显示分割线演示 返回值:None

实现细节

  • 创建演示窗口
  • 绘制500×500像素画布
  • 显示红色分割线和网格编号

📁 文件管理API

文件选择

select_files()
python
def select_files(self)

功能:打开文件选择对话框 返回值:None

实现细节

  • 支持多种图像格式
  • 避免重复选择
  • 更新文件信息显示
clear_files()
python
def clear_files(self)

功能:清空文件列表 返回值:None

update_file_info()
python
def update_file_info(self)

功能:更新文件信息显示 返回值:None

实现细节

  • 计算文件数量和总大小
  • 格式化大小显示
  • 更新文件树控件
  • 更新统计信息
update_file_tree()
python
def update_file_tree(self)

功能:更新文件树显示 返回值:None

实现细节

  • 清空现有项目
  • 添加文件信息(序号、文件名、大小、类型)

文件验证

validate_image_file()
python
def validate_image_file(self, file_path)

参数

  • file_path (str): 文件路径

返回值

  • bool: 验证结果

功能:验证图像文件格式和大小

支持的格式

  • JPG/JPEG
  • PNG
  • BMP
  • GIF
  • TIFF

⚙️ 参数控制API

预设管理

apply_preset()
python
def apply_preset(self, cols, rows)

参数

  • cols (int): 列数
  • rows (int): 行数

功能:应用快速预设 返回值:None

可用预设

  • 2×2
  • 3×3
  • 4×4
  • 2×3
  • 3×2

统计信息

update_stats()
python
def update_stats(self)

功能:更新统计信息 返回值:None

计算内容

  • 预计生成图块数量
  • 输出位置信息

📊 状态管理API

状态更新

update_status()
python
def update_status(self, message, progress=None)

参数

  • message (str): 状态消息
  • progress (float, optional): 进度值 (0-100)

功能:更新状态显示 返回值:None

进度控制

set_progress()
python
def set_progress(self, value)

参数

  • value (float): 进度值 (0-100)

功能:设置进度条 返回值:None

reset_progress()
python
def reset_progress(self)

功能:重置进度条 返回值:None

🎨 UI组件API

界面创建

create_header()
python
def create_header(self, parent)

参数

  • parent (tk.Widget): 父容器

功能:创建标题区域 返回值:None

create_file_section()
python
def create_file_section(self, parent)

参数

  • parent (tk.Widget): 父容器

功能:创建文件选择区域 返回值:None

组件

  • 文件信息标签
  • 文件树控件
  • 选择和清空按钮
create_params_section()
python
def create_params_section(self, parent)

参数

  • parent (tk.Widget): 父容器

功能:创建参数设置区域 返回值:None

组件

  • 分割尺寸设置
  • 快速预设按钮
  • 保存模式选择
create_actions_section()
python
def create_actions_section(self, parent)

参数

  • parent (tk.Widget): 父容器

功能:创建操作按钮区域 返回值:None

组件

  • 主要操作按钮
  • 辅助功能按钮
  • 统计信息显示
create_settings_tab()
python
def create_settings_tab(self)

功能:创建设置标签页 返回值:None

设置项

  • 输出格式选择
  • 图片质量控制
  • 高级选项
create_status_bar()
python
def create_status_bar(self, parent)

参数

  • parent (tk.Widget): 父容器

功能:创建状态栏 返回值:None

组件

  • 状态文本标签
  • 进度条

🔄 事件处理API

窗口事件

on_closing()
python
def on_closing(self)

功能:窗口关闭事件处理 返回值:None

实现细节

  • 显示确认对话框
  • 销毁窗口

控件事件

on_parameter_change()
python
def on_parameter_change(self, *args)

参数

  • *args: 事件参数

功能:参数变化事件处理 返回值:None

on_quality_change()
python
def on_quality_change(self, value)

参数

  • value (str): 质量值

功能:质量滑块变化事件 返回值:None

📤 输出管理API

文件夹操作

open_output_folder()
python
def open_output_folder(self)

功能:打开输出文件夹 返回值:None

实现细节

  • 跨平台兼容
  • 使用系统默认程序打开

PDF操作

_ask_merge_after_split()
python
def _ask_merge_after_split(self, total_files)

参数

  • total_files (int): 处理的文件数量

功能:分割完成后询问是否合并PDF 返回值:None

_ask_open_pdf()
python
def _ask_open_pdf(self, pdf_path)

参数

  • pdf_path (str): PDF文件路径

功能:询问是否打开PDF文件 返回值:None

_merge_images_to_pdf()
python
def _merge_images_to_pdf(self, image_files)

参数

  • image_files (list): 图像文件路径列表

功能:实际执行PDF合并 返回值:None

实现细节

  • 使用reportlab创建PDF页面
  • 使用pypdf合并PDF文件
  • 支持多种图像格式

🔧 配置API

参数获取

get_columns()
python
def get_columns(self)

返回值

  • int: 当前列数设置
get_rows()
python
def get_rows(self)

返回值

  • int: 当前行数设置
get_save_mode()
python
def get_save_mode(self)

返回值

  • str: 当前保存模式
get_output_format()
python
def get_output_format(self)

返回值

  • str: 当前输出格式
get_quality()
python
def get_quality(self)

返回值

  • int: 当前质量设置

参数设置

set_columns()
python
def set_columns(self, cols)

参数

  • cols (int): 列数
set_rows()
python
def set_rows(self, rows)

参数

  • rows (int): 行数
set_save_mode()
python
def set_save_mode(self, mode)

参数

  • mode (str): 保存模式

📝 工具函数

文件操作

get_file_size()
python
def get_file_size(self, file_path)

参数

  • file_path (str): 文件路径

返回值

  • int: 文件大小(字节)
format_file_size()
python
def format_file_size(self, size_bytes)

参数

  • size_bytes (int): 字节数

返回值

  • str: 格式化的大小字符串

图像操作

calculate_tile_size()
python
def calculate_tile_size(self, image_size, cols, rows)

参数

  • image_size (tuple): 图像尺寸 (width, height)
  • cols (int): 列数
  • rows (int): 行数

返回值

  • tuple: 图块尺寸 (width, height)
get_image_info()
python
def get_image_info(self, image_path)

参数

  • image_path (str): 图像路径

返回值

  • dict: 图像信息字典

包含信息

  • 尺寸
  • 格式
  • 模式
  • 文件大小

🚨 错误处理

异常类型

python
class ImageSplitterError(Exception):
    """基础异常类"""
    pass

class FileError(ImageSplitterError):
    """文件相关错误"""
    pass

class ProcessingError(ImageSplitterError):
    """处理相关错误"""
    pass

class ValidationError(ImageSplitterError):
    """验证相关错误"""
    pass

错误处理方法

handle_error()
python
def handle_error(self, error)

参数

  • error (Exception): 异常对象

功能:统一错误处理 返回值

  • dict: 错误处理结果
show_error()
python
def show_error(self, title, message)

参数

  • title (str): 错误标题
  • message (str): 错误消息

功能:显示错误对话框 返回值:None

📊 示例代码

基本使用

python
import tkinter as tk
import ttkbootstrap as ttk
from image_splitter import ImageSplitterApp

# 创建主窗口
root = ttk.Window(themename="litera")

# 创建应用程序
app = ImageSplitterApp(root)

# 启动主循环
root.mainloop()

API调用示例

python
# 获取当前参数
cols = app.get_columns()
rows = app.get_rows()
mode = app.get_save_mode()

# 设置参数
app.set_columns(3)
app.set_rows(3)
app.set_save_mode('separate_folders')

# 选择文件
app.select_files()

# 开始分割
app.start_split()

# 显示演示
app.show_demo()

自定义扩展

python
class CustomImageSplitterApp(ImageSplitterApp):
    def __init__(self, root):
        super().__init__(root)
        # 自定义初始化
    
    def custom_processing(self):
        # 自定义处理逻辑
        pass
    
    def extend_ui(self):
        # 扩展UI组件
        pass

这个API文档提供了完整的接口说明,帮助开发者理解和使用图像分割工具的各项功能。

基于 MIT 许可证发布