# FntTool **Repository Path**: mon6912640/FntTool ## Basic Information - **Project Name**: FntTool - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-18 - **Last Updated**: 2026-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 位图字体生成工具 (Bitmap Font Generator) 一个基于 Python + Tkinter 的位图字体生成工具,功能参考 Cocos Creator 的 bitmap-font 插件。 ## 功能特点 - **图片管理**:添加多张单字符图片,自动从文件名推断字符 - **字符映射**:为每张图片设置对应字符,自动检测重复和空字符 - **智能合图**:使用二叉树算法自动排布图片,生成最小尺寸纹理 - **配置持久化**:自动保存用户配置,下次启动恢复 - **拖拽支持**:支持拖拽图片文件到窗口 ## 项目结构 ``` FntTool/ ├── main.py # 程序入口 ├── setup.py # 环境检测与依赖安装脚本 ├── build.py # 打包脚本 ├── requirements.txt # 依赖列表 ├── README.md # 说明文档 ├── core/ # 核心模块 │ ├── config_manager.py # 配置管理 │ ├── font_generator.py # 字体生成 │ └── image_packer.py # 图片合并算法 └── gui/ # 界面模块 ├── dialogs.py # 对话框工具 ├── image_list.py # 图片列表组件 └── main_window.py # 主窗口 ``` ## 环境要求 - Python >= 3.8 - tkinter (Python 内置) ## 安装依赖 ### 方式一:使用 setup.py(推荐) ```bash # 检测环境并自动安装依赖 python setup.py # 仅检测环境,不安装 python setup.py --check # 自动安装,无需确认 python setup.py --yes ``` ### 方式二:手动安装 ```bash pip install -r requirements.txt ``` ## 打包成可执行文件 如果你想将项目打包成独立的 `.exe` 文件(无需 Python 环境即可运行): ### 使用 build.py 打包(推荐) ```bash # 执行打包 python build.py # 清理后重新打包 python build.py --clean ``` 打包完成后,可执行文件位于 `dist/FntTool.exe`。 ### 手动打包 ```bash pip install pyinstaller python -m PyInstaller --name=FntTool --windowed --onefile main.py ``` ## 使用方法 ### 1. 直接运行(源码方式) ```bash python main.py ``` ### 2. 运行可执行文件(打包后) 双击 `dist/FntTool.exe` 运行。 ### 3. 添加图片 - 点击 "+ 添加图片" 按钮选择图片文件 - 或直接将图片文件拖拽到窗口 ### 4. 设置字符 - 在每张图片右侧的输入框中输入对应字符 - **红色标记**:空字符(必须填写) - **橙色标记**:重复字符(需要修改) ### 5. 配置生成选项 - **保存路径**:选择输出目录 - **文件名**:设置输出文件名(不含扩展名) - **字符间距**:设置字符之间的像素间距 ### 6. 生成 点击 "生成" 按钮,程序将生成: - `{文件名}.fnt` - BMFont 格式的字体描述文件 - `{文件名}_0.png` - 合并后的字符纹理图 ## BMFont 文件格式 生成的 `.fnt` 文件采用标准 BMFont 文本格式: ``` info face="bitmap_font" size=32 bold=0 italic=0... common lineHeight=32 base=32 scaleW=256 scaleH=256 pages=1... page id=0 file="bitmap_font_0.png" chars count=95 char id=65 x=0 y=0 width=32 height=32 xoffset=0 yoffset=0 xadvance=32... ... ``` ## 依赖说明 | 依赖 | 版本 | 说明 | |------|------|------| | Pillow | >=9.0.0 | 图像处理库 | | tkinterdnd2 | >=0.3.0 | 拖拽功能支持 | ## 与原插件的差异 | 特性 | Cocos Creator 插件 | Python 版本 | |------|-------------------|-------------| | 运行环境 | Cocos Creator 编辑器内 | 独立运行 | | 图片合并 | spritesmith (binary-tree) | Pillow (binary-tree) | | 配置存储 | userData 目录 | 本地 config.json | | 项目导入 | 自动导入到 assets | 手动复制 | | TTF 支持 | 有 | 暂无 | ## 注意事项 1. **字符唯一性**:每个字符只能对应一张图片 2. **图片格式**:支持 PNG、JPG、BMP、GIF 等常见格式 3. **纹理尺寸**:生成的纹理尺寸自动对齐到 2 的幂次方 4. **配置文件**:配置保存在程序目录下的 `config.json` 中 ## 后续扩展 - [ ] TTF 字体生成位图 - [ ] 更多特效(描边、阴影、渐变) - [ ] 导出格式选项(XML、JSON) - [ ] 预览功能 ## 许可证 MIT License