Live Photo Box(实况照片工具箱)

统一各类实况照片协议,实现跨设备无缝查看与迁移

Latest release Build Platform .NET 9 C# 13 WinUI 3

---

📖 README Language:简体中文  ·  English

## 🚀 下载
Get it from MicrosoftGitHub Releases

或通过 winget 安装 纯命令行版本winget install LengxiQwQ.LivePhotoBox

--- > 🎨 **想给软件换个新图标** > > Live Photo Box 的主要功能已经逐渐稳定,接下来作者想给软件换一个更合适的图标,也顺便更新一下主页 Banner 横幅。 > > 如果你有喜欢的设计方向,或者愿意动手尝试一下,欢迎把作品分享到 [GitHub Discussions](https://github.com/LengxiQwQ/live-photo-box/discussions/new?category=ideas)。PNG、PSD、SVG、Figma 文件以及其他设计网站链接都可以,简单的草图或想法也没问题。谢谢大家! --- ## 💡 这是什么? 不同品牌的实况照片虽然都由图片与短视频组成,却采用了不同的文件结构和数据方式。跨设备或跨平台迁移后,常常会遇到无法播放、方向异常、动态丢失或元数据缺失等问题。 **实况照片工具箱** 提供统一的实况照片处理能力,支持合成、拆分、格式转换、修复与编辑,并可在不同品牌与设备之间迁移实况照片。 同时最大程度保留原始照片的细节与信息,包括 HDR、EXIF、相机参数、拍摄信息以及原始媒体内容,让每一次转换,都尽可能接近照片最初的样子。 --- ## 📸 应用截图

🖼️ 实况照片编辑
编辑

🔗 实况照片合成
合成

--- ## ✨ 核心功能 ### 🖼️ 实况照片编辑 自由更换实况照片的封面帧,从视频时间轴中选取最完美的一刻。 - 视频帧时间轴胶片条,逐帧预览 - 一键替换封面、导出单帧或全部视频帧,或者导出为视频以及 GIF 动图 - 快速实况照片协议转换 - 文件基本属性查看,实况照片协议查看 ### 🔗 实况照片合成 将**双文件实况照片协议**(或任意图片 + 视频)转换为**单文件实况照片**,在 Windows 及 Android 设备上均可查看。 - **任意素材,一键合成**:拖拽或选择图片(`JPG` / `HEIC`)+ 视频(`MP4` / `MOV`)直接合成;也可以扫描整个文件夹,自动识别配对、批量入队 - **多种智能配对**:按文件名、Apple `ContentIdentifier` UUID、vivo 相机 ID 自动匹配图片与视频;也可直接合并现成的双文件实况照片 - **多品牌协议自由切换**:主流品牌目标协议一键切换,配合 `JPEG+MP4` / `JPEG+MOV` / `HEIC+MP4` / `HEIC+MOV` / `HEIC+MP4(H.265)` 输出格式,随协议自动筛选可用项 - **批量文件命名**:命名模板快速编排(原名 / 协议 / 日期 / 时间 / EXIF 日期时间 / 计数器 / 自定义文本),支持拖拽排序、预设模板、分隔符选择与实时预览——无需编写正则表达式即可批量重命名 - **收尾处理**:合成完成后可选择移动到指定目录,或移入回收站 - **并行批量合成**:任务队列支持搜索、多维度排序与状态筛选,多任务并行处理,实时显示进度、成功/失败统计与耗时 | 合成协议 | 支持设备 | 状态 | |---|---|---| | Google - Micro Video (V1) | Windows / 小米 (旧版 MIUI) / Pixel | ✅ 可用 | | Google - Motion Photo (V2) | Windows / 小米 / Pixel | ✅ 可用 | | OPPO - O-Live Photo | Windows / 小米 / OPPO | ✅ 可用 | | HUAWEI - Moving Photo | 华为 / 荣耀 | ✅ 可用 | | Samsung - Motion Photo | Windows / Samsung | ✅ 可用 | | vivo - Live Photo | Windows / vivo(≥ x300) | 🟡 测试中 | ### 📸 实况照片拆分 将**实况照片**(单文件形式)拆分为**双文件实况照片**形式,或独立的静态图片(`JPG` / `HEIC`)和视频(`MP4` / `MOV`)。 - **批量拆分**:扫描整个文件夹自动识别实况照片、批量入队;可按协议筛选(Google / OPPO / vivo / Samsung / 华为),只拆分目标品牌 - **协议输出**:可转为 Apple / vivo 双文件实况照片(写入配对元数据),也可重新封装为 `HEIC+MOV` / `JPG+MOV` / `JPG+MP4` 格式 - **剥离实况照片元数据**:防止拆分后的图片被再次误识别为实况照片;保留照片其他元数据,不丢失 `EXIF` / `ICC` / `GPS` / 拍摄参数 - **命名模板**:与合成页一致的片段式命名,支持拖拽排序与实时预览 > ⚠️ **关于 iPhone / iPad**:受 iOS 系统限制,实况照片无法直接导入 iOS 设备。本软件只负责生成实况照片数据,导入需通过爱思助手(i4Tools)等第三方软件完成。 | 拆分协议 | 支持机型 | 状态 | |---|---|---| | Apple - Live Photo | iPhone / iPad | ✅ 可用 | | vivo - Live Photo | vivo(≤ x200) | ✅ 可用 | ### 🛠️ 实况照片修复 修复针对 Apple 实况照片导出后出现的显示异常。扫描后可查看每张照片的**诊断详情**,可以按文件类型或修复状态快速筛选。 - **多余缩略图及横向拉伸**(iOS 17.3 之前):Apple 曾嵌入低分辨率缩略图但带有方向标签,Windows 误将其当作横向图片处理,导致拉宽或压扁 。我们使用 `jpegtran` 无损旋转 + 剥离多余缩略图 - **前置摄像头视频旋转**:iPhone 前置镜头纵向像素横向存储,依赖方向标签指示角度,Windows 不识别。我们用 `FFmpeg` 重编码消除旋转矩阵 - **HEIC 方向错误**:修正错误的 `Orientation` 标签(如果存在) ### 📂 自动整理相册(功能开发中) 通过识别照片元数据,自动按拍摄设备、日期、实况照片类型自动扫描分类归档。首批从 iPhone 起步,逐步覆盖更多品牌。 --- ## 💻 命令行工具 Live Photo Box 提供**命令行工具** —— `livephotobox`,与 GUI 共享 100% 核心逻辑,适合脚本和 AI Agent 调用。 - **命令**:`merge`(单对或批量合成)、`split`(拆回图片 + 视频)、`cover` / `keyphoto`(修改封面帧)、`repair`(修复 Apple 实况照片显示问题)、`protocols`(协议 × 格式兼容矩阵查询)、`backend`(选择全局 `rebuilt` / `legacy` 分支)、`update` / `update-check`(检查并安装更新) - **四个可执行别名**:`livephotobox` / `livephoto` / `livebox` / `lpb` - **批量配对和命名方式**:按文件名、Apple `ContentIdentifier` UUID、vivo 相机 ID 自动配对;`-n custom:{name}_{date}` 等命名模板批量重命名输出;`--after` 支持完成后移动到文件夹 / 回收站 - **脚本友好**:使用`--json` 输出结构化结果,供脚本与 AI Agent 直接消费;`--dry-run` 可预览操作而不实际处理文件 - **分发**:随安装包 / 便携版内置(可选"添加到 PATH"),或独立 `-x64-cli.zip`(单文件免安装,包内附 `add-to-path.cmd` / `remove-from-path.cmd` 辅助脚本,双击即可一键加入 / 移除 PATH);也可用 `winget install LengxiQwQ.LivePhotoBox` 一键安装纯 CLI 版 📖 **CLI 使用指南**:[English](docs/CLI-User-Guide.md) · [简体中文](docs/CLI-User-Guide.zh-CN.md) --- ## 🛠️ 技术栈 | 层级 | 技术 | 版本 | |------|------|------| | 语言 | C# | 13.0 | | Native 后端 | Visual C++ / C++20 DLL(稳定 C ABI) | MSVC x64(v143/v145) | | 运行时 | .NET | 9.0 | | UI 框架 | Windows App SDK(WinUI 3) | 1.8 | | 架构 | MVVM(CommunityToolkit.Mvvm) | 8.4.2 | | 图像处理 | Magick.NET(ImageMagick)+ Win2D | 14.16.0 / 1.3.2 | | 图像缩放 | PhotoSauce.MagicScaler | 0.15.0 | | 元数据引擎 | `ExifTool`(常驻进程模式) | 13.59 | | 视频处理 | `FFmpeg` (NVENC / QSV / AMF 硬件加速) | n9.0.1 | | JPEG 操作 | `jpegtran`(无损旋转、缩略图剥离) | — | | HEIC 编解码 | `libheif`(`heif-enc` / `heif-dec`) | 1.23.1 | | HEIC 原生解码 | PhotoSauce.NativeCodecs.Libheif(MagicScaler 管线) | 1.19.5-preview1 | | Markdown 渲染 | Markdig | 1.3.2 | | UI 扩展 | CommunityToolkit.WinUI + FluentIcons | — | | 命令行 | System.CommandLine | 2.0.11 | | 打包 | MSIX 自包含(无需安装运行时) | — | > `ExifTool` / `FFmpeg` / `jpegtran` / `libheif` 为随包附带的外部工具(`Tools/` 目录),负责元数据读写与音视频处理。 > > 本阶段 Native 协议能力不接入产品的全局分流。默认 `rebuilt` 不实现也不调用任何厂商协议;`legacy` 保留 v2.2.1 兼容路径。Native 协议工作要等中性媒体管线和独立验证完成后再开始。 --- ## 💻 编译与开发 ### 环境 - [Visual Studio 2022](https://visualstudio.microsoft.com/) 及以上 - 在 VS Installer 中勾选:**.NET 桌面开发** + **通用 Windows 平台开发** + **使用 C++ 的桌面开发**(MSVC x64 工具链) - [.NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/9.0) ### 构建 ```bash # 克隆仓库到本地 git clone https://github.com/lengxiqwq/live-photo-box.git cd live-photo-box ``` 仓库提供现成的 PowerShell 构建脚本(`scripts/`),GUI 与 CLI 均可一键构建,无需手敲 dotnet 命令: | 脚本 | 产物 | |------|------| | `scripts/build-dev.ps1` | 未打包开发版(GUI + CLI),输出到 `publish/` | | `scripts/build-cli-release.ps1` | 独立 CLI 单文件包(`publish/Live-Photo-Box-v{版本}-x64-cli.zip`) | | `scripts/build-release.ps1` | 完整发布三件套:便携版 zip + CLI zip + 安装包 | > 脚本支持 `-CI` 参数,供 GitHub Actions 等 CI 环境使用(不弹 `pause` 等待)。 本地验证请在仓库根目录依次运行 Native smoke test、解决方案测试和 CLI 全流程测试: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File scripts/native/build-native.ps1 -Configuration Release -Architecture x64 -RunTests dotnet test python scripts/testing/run-cli-integration-test.py ``` 创建发布标签前,以上三项必须全部通过。`scripts/build-release.ps1` 也会自动构建 Native,并检查 GUI 与 CLI 产物中存在 `LivePhotoBox.Native.dll`。 --- ## 📁 项目结构 ``` live-photo-box/ ├── LivePhotoBox.Core/ # 共享核心库(协议、合成/拆分/修复服务、本地化) ├── LivePhotoBox.Native/ # C++20 Native 后端(稳定 C ABI,x64 DLL) ├── LivePhotoBox/ # 主项目(WinUI 3 MSIX 应用) │ ├── Assets/ # 图标、教程截图等静态资源 │ ├── Controls/ # 自定义控件(全屏灯箱、底部状态栏) │ ├── Converters/ # XAML 值转换器 │ ├── Helpers/ # 工具类(滚动、格式化、悬停预览等) │ ├── Models/ # 数据模型 │ ├── Services/ # GUI 业务逻辑层(委托给 LivePhotoBox.Core) │ ├── Strings/ # 多语言资源(中文 / 英文) │ ├── ViewModels/ # MVVM ViewModel 层 │ └── Views/ # XAML 页面 ├── LivePhotoBox.CLI/ # 命令行工具(livephotobox) ├── tests/ # 测试项目(Core / CLI / UI / 基准测试) ├── docs/ # 项目文档 ├── changelogs/ # 更新日志 ├── scripts/ # 构建与打包脚本 │ └── native/ # MSVC/Native 构建与 smoke test 脚本 ├── artifacts/ # Native 构建产物(gitignore) ├── screenshots/ # 截图资源 ├── lpb.cmd # 源码版 CLI 开发别名(直接运行当前源码,等价 dotnet run) └── README.md ``` 📖 完整目录说明见 项目总览 --- ## 📋 更新日志 📋 CHANGELOG:简体中文  ·  English --- ## 🌍 本地化 | 语言 | 状态 | |------|:----:| | 中文(简体)(zh-Hans) | ✅ 完整 | | English (en) | ✅ 完整 | 支持系统语言自动跟随,也可在设置中手动切换。 --- ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! - 🐛 **Bug 报告**、💡 **功能建议** → [GitHub Issues](https://github.com/lengxiqwq/live-photo-box/issues) - 🔧 **代码贡献** → Fork → Feature Branch → Pull Request --- ## 📄 许可证 本项目基于 **GNU General Public License v3.0 (GPL 3.0)** 开源。详见 [LICENSE](LICENSE) 文件。 --- ## 🙏 致谢 | 工具/库 | 用途 | 许可 | |---------|------|------| | [FFmpeg](https://ffmpeg.org/) | 视频编解码 | LGPL/GPL | | [ExifTool](https://exiftool.org/) | 图像/视频元数据读写 | Perl | | [libheif](https://github.com/strukturag/libheif) | HEIC/HEIF 编解码管线 | LGPL-3.0 | | [jpegtran](https://jpegclub.org/) | JPEG 无损变换 | 自由软件 | | [Magick.NET](https://github.com/dlemstra/Magick.NET) | HEIC 解码 | Apache 2.0 | | [CommunityToolkit.Mvvm](https://github.com/CommunityToolkit/dotnet) | MVVM 框架 | MIT | | [PhotoSauce.MagicScaler](https://github.com/saucecontrol/PhotoSauce) | 高性能图片缩放 | MIT | | [Markdig](https://github.com/xoofx/markdig) | Markdown 渲染 | BSD-2-Clause | | [FluentIcons](https://github.com/davidxuang/FluentIcons) | Fluent 图标集 | MIT | --- ## ⭐ Star 历史 Star History Chart **📊 仓库流量** 访问次数:**2,257** | 不重复访客:**176**(近 14 天) | 仓库克隆:**1,593** | 不重复克隆:**137**(近 14 天) **热门来源(近 14 天):** github.com · Bing · chatgpt.com · Google · t.co · doubao.com **热门内容(近 14 天):** releases · releases/tag/v2.2.1 · releases/tag/v2.2.0 · README.zh-CN.md > 数据开始:2026-08-02 · 最后更新:2026-09-02 (UTC+8) ---

Made with ❤️ by LengxiQwQ

Stars Forks Downloads