Refactor code structure for improved readability and maintainability

This commit is contained in:
Nymiro
2025-10-21 13:29:10 +13:00
parent 3c41c57084
commit f0a03e8376
3 changed files with 172 additions and 40 deletions
+20
View File
@@ -25,6 +25,7 @@
| 组件 | 作用 |
| --- | --- |
| `scripts/samsung_live_photo.py` | 命令行转换脚本,输出苹果兼容的 HEIC + MOV |
| `scripts/batch_media_manager.py` | 图形化批处理工具:扫描目录、转换 Motion Photo、匹配 Live Photo 配对、清理由 MotionPhoto_Data 标记的冗余视频,并可归档原始素材 |
| `pyheic_struct.HEICFile` | 解析 HEIC 盒结构、重建主图、提取 Motion Photo 等 |
| `pyheic_struct.HEICBuilder` | 在修改元数据后重新写出 HEIC,确保偏移正确 |
| `pyheic_struct.convert_motion_photo` | 通用转换入口,可指定厂商与目标适配器 |
@@ -107,6 +108,25 @@ HEICBuilder(rebuilt).write("converted/customized.HEIC")
---
### 4. 图形化批处理工具(GUI)
`scripts/batch_media_manager.py` 提供完整的桌面界面,便于批量巡检目录:
- 递归扫描 HEIC/MOV/MP4 等媒体,并以进度条与日志反馈处理情况;
- 检测 Live Photo 配对,自动移动缺失伴侣的孤立视频到安全子目录;
- 将三星 Motion Photo 转换为 Apple 兼容的 HEIC + MOV,并补写 `ContentIdentifier`
- 清理带 `MotionPhoto_Data` 标签、与 Motion Photo 重复的冗余 MP4
- 可选地把成功转换的原始素材按照原路径层级移动到 `归档/`(或 `Archive/`)并打包 zip
- 内置“停止”按钮和窗口关闭钩子,可安全取消长时间任务。
运行示例:
```bash
python3 scripts/batch_media_manager.py
```
---
## Live Photo 转换管线解读
1. **解析原始 HEIC**:读取 `ftyp``meta``iloc` 等盒;通过 handler 自动识别三星文件并查找 `mpvd` 盒。