# 图片注释软件 **Repository Path**: sayme/ImageLabeler ## Basic Information - **Project Name**: 图片注释软件 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-27 - **Last Updated**: 2025-10-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Image Labeler - 图像标注工具 一个功能强大的图像标注工具,支持文字标注、线条绘制和遮罩覆盖等多种标注功能。 ## 🌟 主要特性 ### 📝 文字标注 - **自定义文字内容**:支持任意文字内容的添加和编辑 - **字体管理**: - 自动检测系统中文字体(微软雅黑、黑体等) - 支持添加自定义字体文件(TTF、TTC、OTF格式) - 实时字体预览和切换 - **样式设置**: - 字号调节(8-200px) - 加粗效果 - 自定义颜色选择 - **交互操作**: - 点击选择标注 - 拖拽移动位置 - 实时预览效果 ### 🖊️ 线条绘制 - **直线模式**:点击两个点绘制直线 - **折线模式**:点击多个点绘制折线 - **线条属性**: - 粗细调节(1-20px) - 颜色自定义 - 高质量抗锯齿渲染 - **编辑功能**: - 选择线条显示控制点 - 拖拽控制点调整形状 - 实时属性修改 ### 🎭 遮罩功能 - **矩形遮罩**:拖拽绘制矩形遮罩区域 - **透明度控制**:0.1-1.0 透明度调节 - **颜色自定义**:支持任意颜色选择 - **交互编辑**: - 拖拽移动遮罩位置 - 四角手柄调整尺寸 - 实时预览效果 ### 🖼️ 图像操作 - **多格式支持**:PNG、JPG、JPEG、BMP - **缩放控制**: - 鼠标滚轮缩放 - 快捷按钮放大/缩小 - 自适应窗口大小 - 缩放比例显示(5%-1000%) - **视图操作**: - 中键拖拽平移画布 - 滚动条精确定位 - 实时坐标显示 ### 💾 文件管理 - **图片导出**: - 高质量PNG导出 - 2倍超采样抗锯齿 - 保持原始分辨率 - 所有标注合成到图片 - **工程文件**: - JSON格式保存所有标注数据 - 支持重新加载编辑 - 相对路径图片引用 - 完整的标注信息保存 ## 🚀 快速开始 ### 环境要求 - Python 3.6+ - 依赖库: ```bash pip install pillow tkinter ``` ### 运行程序 ```bash python ImageLabeler_CN.py ``` ### 基本使用流程 1. **打开图片**:点击菜单栏"打开图片"选择要标注的图像 2. **添加标注**: - 文字标注:设置文字内容和样式,点击"添加文字标注" - 线条绘制:选择直线或折线模式,在图片上点击绘制 - 遮罩覆盖:开启遮罩模式,拖拽绘制遮罩区域 3. **编辑标注**: - 点击选择标注项 - 在右侧面板修改属性 - 拖拽移动或调整大小 4. **保存结果**: - 导出图片:将标注合成到图片并保存 - 保存工程:保存标注数据用于后续编辑 ## 🎮 操作指南 ### 鼠标操作 - **左键单击**:选择标注项、添加标注点 - **左键拖拽**:移动标注、调整大小 - **中键拖拽**:平移画布视图 - **滚轮**:缩放图片 - **ESC键**:清除当前选择 ### 界面布局 - **左侧**:图像编辑区域,支持缩放和滚动 - **右侧上部**:样式设置面板(文字、线条、遮罩属性) - **右侧下部**:标注管理列表(文字、线条、遮罩列表) ### 快捷功能 - **自适应缩放**:自动调整图片适应窗口大小 - **一键清空**:清除所有标注内容 - **实时预览**:所有修改立即在画布上显示 ## 📁 项目结构 ``` ImageLabeler/ ├── ImageLabeler_CN.py # 主程序入口 ├── config.py # 配置参数 ├── models.py # 数据模型(标注、线条、遮罩) ├── ui.py # 用户界面构建 ├── handlers.py # 事件处理逻辑 ├── file_operations.py # 文件操作功能 ├── menu.py # 菜单栏构建 ├── font_utils.py # 字体工具函数 └── README.md # 项目说明文档 ``` ## 🔧 技术特性 ### 高质量渲染 - **抗锯齿线条**:使用PIL高分辨率渲染技术 - **字体渲染**:支持TrueType字体的精确显示 - **透明度处理**:真实的Alpha通道透明效果 ### 性能优化 - **增量更新**:拖拽时只更新画布,不刷新整个界面 - **缓存机制**:线条图像缓存减少重复计算 - **内存管理**:及时清理临时图像对象 ### 用户体验 - **直观操作**:所见即所得的编辑体验 - **实时反馈**:操作立即显示结果 - **容错处理**:异常情况的友好提示 ## 🎯 应用场景 - **图像标注**:为机器学习数据集添加标注 - **图片编辑**:在图片上添加文字说明和标记 - **教学演示**:制作带标注的教学图片 - **文档制作**:为技术文档添加图解说明 - **设计标注**:UI/UX设计的标注和说明 ## 📋 支持的文件格式 ### 输入格式 - **图片**:PNG、JPG、JPEG、BMP - **工程**:JSON格式的标注数据 ### 输出格式 - **图片**:PNG(带透明通道) - **工程**:JSON格式(包含所有标注信息) ## 🛠️ 自定义配置 可以通过修改 `config.py` 文件调整以下参数: - 默认窗口大小 - 默认字体大小和颜色 - 线条粗细范围 - 缩放限制范围 - 支持的图片格式 ## 📝 更新日志 ### 当前版本特性 - ✅ 完整的文字标注功能 - ✅ 直线和折线绘制 - ✅ 矩形遮罩功能 - ✅ 高质量图片导出 - ✅ 工程文件保存/加载 - ✅ 多平台字体支持 - ✅ 实时编辑和预览 ## 🤝 贡献指南 欢迎提交Issue和Pull Request来改进这个项目! ## 📄 许可证 本项目采用开源许可证,可自由使用和修改。 --- **Image Labeler** - 让图像标注变得简单高效!