LengxiQwQ/live-photo-box

GitHub: LengxiQwQ/live-photo-box

一款跨平台实况照片管理工具,旨在解决Apple Live Photos在Windows与Android设备上的显示兼容、格式转换及元数据损坏修复问题。

Stars: 4 | Forks: 0

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

A toolbox for managing, repairing, and converting Apple Live Photos on Windows & Android

Release Build Platform .NET 9 C# 13 WinUI 3

📖 README 语言: English  ·  简体中文

📋 更新日志: English  ·  简体中文

## 🚀 下载
Get it from MicrosoftGitHub Releases

Architecture: x64  |  System Requirements: Windows 10 (1809+) or Windows 11  |  No runtime required (self-contained .NET 9 + WinAppSDK 1.8)

## 💡 这是什么? iPhone Live Photos 本质上是一张静态图片 + 一段短视频。问题在于 Apple 的格式在 Windows 上的兼容性不佳: - **无法原生预览** — Windows 文件资源管理器只显示静态图片 - **跨平台传输后(例如 iOS → Android → 再传回)元数据丢失及配对损坏**,导致 Live Photos 变成普通的 JPEG - **前置摄像头拍摄的视频出现旋转或拉伸** — Windows 会忽略 iOS 用于纠正方向的旋转元数据 **Live Photo Box** 解决了所有这些问题 — 让你可以在 Windows 上像在 iPhone 上一样查看、管理和修复 Live Photos。 基于 **WinUI 3 (Windows App SDK 1.8)** 构建,完全原生契合 Windows 11 Fluent Design 设计规范,支持 Mica / Acrylic 材质和深色/浅色主题。 ## 📸 应用截图
🏠 Home & Tutorial
Home
📸 Split Live Photo
Split
🔗 Merge Live Photo
Merge
🛠️ Repair Live Photo
Repair
⚙️ Settings
Settings
✨ Acrylic Semi-Transparent Effect
Acrylic effect
## ✨ 核心功能 ### 🔗 合并 Live Photo 将 **Apple Live Photos** 或任意静态图片 + 短视频片段合并为**标准 Live Photo**(单文件格式),可在 Windows 和 Android 设备上查看。 - 支持 **`Google (V1 & V2)` /` OPPO` / `Xiaomi`** 协议 - 自动写入完整的 `EXIF` + `QuickTime` 元数据(`ContentIdentifier` `UUID`) - **Apple 原生 Live Photo 配对**:即使文件名完全不同,也能通过 Apple `ContentIdentifier` (`UUID`) 匹配图片和视频;当 `UUID` 不可用时,会平滑降级为按拍摄时间 ±2 秒的容差进行匹配 - **通过任何受支持协议合并的 Live Photos 均可在 Windows 上完全查看**(推荐使用 Motion Photo V2) ### 📸 拆分 Live Photo 将 **Live Photo**(单文件形式)拆分为独立的静态图片(`JPG` / `HEIC`)和视频(`MP4` / `MOV`)。 - 剥离 `XMP` 元数据以防止拆分后的图片被错误地重新识别为 Live Photo,同时保留所有其他元数据 - 逐段重建 `JPEG`;保留 `EXIF` / `ICC` / `GPS` / 拍摄参数 ### 🛠️ 修复 Live Photo 深度修复 iPhone Live Photos 导出至 Windows 时出现的视觉缺陷。 - **多余缩略图和水平拉伸**(iOS 17.3 之前版本):Apple 曾嵌入带有方向标记的低分辨率缩略图,Windows 会将其误认为是横向的,从而导致拉伸或挤压。通过 `jpegtran` 旋转 + 剥离多余缩略图实现无损修复 - **前置摄像头视频旋转**:iPhone 前置摄像头将垂直像素水平存储,并依赖于方向标记 — 而 Windows 会忽略这一点。通过 `FFmpeg` 重新编码将旋转矩阵烘焙到像素数据中进行修复 - **HEIC 方向校正**:纠正错误写入的 `Orientation` 标记 - **ContentIdentifier 恢复**:自动修复图片与视频的 `UUID` 配对关系 - 扫描并查看每张照片的**诊断详情**;按文件类型或修复状态进行筛选 ### 🖼️ 替换封面照(开发中) 自由更改 Live Photo 的封面帧。 - 从视频中提取任意帧作为新的封面照 - 导入自定义图片 - 无损替换 — 保留所有 Live Photo 属性 ### 📂 照片整理(开发中) 基于 EXIF 元数据,按设备、日期和 Live Photo 类型自动扫描、分类和归档照片。初步支持将针对 iPhone 照片。 ## 📋 支持的 Live Photo 协议 | 协议 | 来源 | 描述 | |----------|--------|-------------| | Google — Micro Video (V1) | Google(旧版) | `MP4` 视频附加到 `JPEG` 末尾,偏移量记录在 `GCamera:MicroVideoOffset` 中。被旧版 Xiaomi MIUI / Pixel 设备使用 | | Google — Motion Photo (V2) | Google | 现代标准,`Container:Directory` `XMP` 结构。被 Google Pixel / Xiaomi HyperOS 3+ 使用 | | OPPO/OnePlus — O Live Photo | OPPO / OnePlus | 扩展的 `Motion Photo V2`,增加了 `OpCamera` 命名空间 + `EXIF` `UserComment`。被 OPPO ColorOS / OnePlus OxygenOS 使用 | ## 🛠️ 技术栈 | 层级 | 技术 | 版本 | |-------|-----------|---------| | 语言 | C# | 13.0 | | 运行时 | .NET | 9.0 | | UI 框架 | Windows App SDK (WinUI 3) | 1.8 | | 架构 | MVVM (CommunityToolkit.Mvvm) | 8.4.2 | | 图像处理 | Magick.NET (ImageMagick) + Win2D | 14.14.0 / 1.3.2 | | 元数据引擎 | `ExifTool` (守护进程模式, v13.x) | — | | 视频处理 | `FFmpeg` (NVENC / QSV / AMF 硬件加速) | — | | JPEG 操作 | `jpegtran` (无损旋转,缩略图剥离) | — | | UI 扩展 | CommunityToolkit.WinUI + FluentIcons | — | | 打包 | MSIX 自包含(无需额外运行时) | — | ## 💻 构建与开发 ### 前置条件 - [Visual Studio 2022](https://visualstudio.microsoft.com/) 或更高版本 - 在 VS 安装程序中,选择:**.NET 桌面开发** + **通用 Windows 平台开发**(包含 Windows App SDK 组件) - [.NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/9.0) ### 构建 ``` # 克隆 repository git clone https://github.com/lengxiqwq/live-photo-box.git cd live-photo-box # 还原 NuGet packages dotnet restore # Build project dotnet build "Live Photo Box/Live Photo Box.csproj" # 运行 dotnet run --project "Live Photo Box/Live Photo Box.csproj" ``` ## 📁 项目结构 ``` live-photo-box/ ├── Live Photo Box/ # Main project (WinUI 3 MSIX app) │ ├── Assets/ # Icons, screenshots, static resources │ ├── Controls/ # Custom controls (fullscreen lightbox, status bar) │ ├── Converters/ # XAML value converters │ ├── Helpers/ # Utilities (scrolling, formatting, hover preview, etc.) │ ├── Models/ # Data models │ ├── Services/ # Business logic layer │ │ └── Protocols/ # Live Photo protocol implementations (3 types) │ ├── Strings/ # Multilingual resources (zh-Hans / en-US) │ ├── ViewModels/ # MVVM ViewModel layer │ └── Views/ # XAML pages ├── docs/ # Project documentation ├── changelogs/ # Release notes ├── scripts/ # Build & packaging scripts └── README.md ``` ## 🌍 本地化 | 语言 | 状态 | |----------|:------:| | 中文(简体)(zh-Hans) | ✅ 完成 | | English (en) | ✅ 完成 | 自动跟随系统语言;也可以在“设置”中手动切换。 ## 📄 许可证 本项目基于 **GNU General Public License v3.0 (GPL 3.0)** 开源。详情请参阅 [LICENSE](LICENSE) 文件。 ## 🙏 致谢 | 工具 / 库 | 用途 | 许可证 | |---------------|---------|---------| | [ExifTool](https://exiftool.org/) (作者 Phil Harvey) | 全局元数据解析、注入、XMP 重构 | Perl | | [FFmpeg](https://ffmpeg.org/) | 视频转码和流封装转换 | LGPL/GPL | | [jpegtran](https://jpegclub.org/) | 无损 JPEG 转换(DCT 系数空间) | 自由软件 | | [Magick.NET](https://github.com/dlemstra/Magick.NET) (作者 dlemstra) | 通过 libheif 解码 HEIC/HEIF | Apache 2.0 | | [CommunityToolkit.Mvvm](https://github.com/CommunityToolkit/dotnet) | MVVM 框架 | MIT | | [Win2D](https://github.com/microsoft/Win2D) | GPU 加速图形渲染 | MIT | | [FluentIcons](https://github.com/davidxuang/FluentIcons) | Fluent 图标集 | MIT |

LengxiQwQ 用 ❤️ 制作

Stars Forks Downloads

标签:WinUI 3, 图像处理, 多媒体工具, 实况照片, 跨平台兼容