empty ec2e0a3ce5 feat: v1.1 P1 功能实现 + 体验优化(4 项新功能 + 9 项修复)
## 新功能

### 视频时长放宽(Feature 5)
- LivePhotoCore: targetDuration 从固定 0.917 秒改为动态计算(0.5-5.0 秒)
- LivePhotoCore: keyFrameTime 按比例映射到目标视频时长
- EditorView: slider 上限从 1.5 秒提升至 5.0 秒
- EditorView: 超过 2 秒显示壁纸兼容性提示,超过 3 秒显示分享截断提示

### 自定义封面帧(Feature 4)
- ExportParams: 新增 coverImageURL 字段
- EditorView: 封面帧区域增加 PhotosPicker 从相册导入照片作为封面
- AppState: coverImageURL 传递到 LivePhotoWorkflow
- EditorView: onDisappear 时清理临时封面文件,避免磁盘泄漏

### 收藏/模板预设(Feature 6)
- 新增 PresetManager.swift: EditingPreset 模型 + 预设管理器
- 支持保存/加载/删除预设,最多 10 个
- UserDefaults + iCloud KV Store 双重持久化
- EditorView: 预设保存/加载 UI + 空状态 ContentUnavailableView

### iCloud 同步(Feature 7)
- RecentWorksManager: 新增 NSUbiquitousKeyValueStore 同步
- PresetManager: 同步支持 iCloud KV Store
- 合并策略:按 ID 去重,保留最新记录,限制条数上限

## Bug 修复

### P0 级
- ResultView: Live Photo 预览比例从固定值改为动态计算 aspectRatio
- EditorView: 修复本地化字符串拼接问题(使用 String(localized:) 替代硬编码)

### P1 级
- EditorView: 预设列表空状态显示 ContentUnavailableView
- ProcessingView: 进度环与百分比文本动画同步(统一 overallProgress 计算)

### P2 级
- EditorView: 添加触觉反馈(比例切换、生成按钮、预设保存、封面导入)
- HomeView: 删除作品触觉反馈 + 入场动画优化
- ProcessingView: 脉冲动画背景尺寸微调(160-175pt)
- LaunchScreen: 品牌启动画面(App Icon + 标题 + 副标题)

## 本地化

- 新增约 25 个本地化 key,覆盖 8 种语言
  (zh-Hans, zh-Hant, en, ja, ko, es, fr, ar)
- 包含:预设管理、封面导入、时长提示、删除确认、
  空状态、诊断建议等全部新增 UI 文案

## 改动文件(16 个)

- Sources/LivePhotoCore/LivePhotoCore.swift — 动态时长 + coverImageURL
- to-live-photo/AppState.swift — coverImageURL 传递
- to-live-photo/PresetManager.swift — 新增预设管理器
- to-live-photo/RecentWorksManager.swift — iCloud 同步
- to-live-photo/DesignSystem.swift — 新增设计令牌
- to-live-photo/Localizable.xcstrings — 25+ 本地化 key
- to-live-photo/Views/EditorView.swift — 4 项新功能 UI
- to-live-photo/Views/HomeView.swift — 删除作品 + 触觉反馈
- to-live-photo/Views/ProcessingView.swift — 进度环动画修复
- to-live-photo/Views/ResultView.swift — 预览比例修复 + Live Photo 预览
- to-live-photo/Base.lproj/LaunchScreen.storyboard — 品牌启动画面
- to-live-photo/Assets.xcassets/Launch*.colorset — 启动画面颜色资源

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-08 00:04:10 +08:00
2026-01-11 02:35:54 +08:00

Live Photo Studio

将任意视频转换为 iOS Live Photo支持锁屏动态壁纸

Platform Swift License

功能特性

  • 📹 视频转 Live Photo — 导入相册视频,一键生成系统可识别的 Live Photo
  • ✂️ 精准裁剪 — 时长裁剪1~1.5s+ 多比例模板(锁屏/全面屏/4:3/1:1
  • 🎨 AI 超分辨率 — 集成 Real-ESRGAN智能提升画面清晰度On-Demand Resources 按需下载)
  • 🖼️ 封面帧选择 — 滑杆精选最佳静态封面
  • 📱 壁纸引导 — 系统版本适配的设置步骤引导
  • 🌍 9 语言国际化 — 简/繁中文、英、日、韩、法、西、阿拉伯语,应用内切换
  • 🎯 首次引导 — 4 页 Onboarding 流程,快速了解核心功能
  • ⚙️ 设置中心 — 语言切换、缓存管理、权限状态、隐私政策
  • 🕐 最近作品 — 自动记录历史作品,缩略图预览,一键设为壁纸

📱 系统要求

  • iOS / iPadOS 18.0+
  • Xcode 16.0+
  • Swift 6.0

🚀 快速开始

克隆项目

git clone https://git.let5see.xyz/let5see/to-live-photo.git
cd to-live-photo

构建运行

# 模拟器构建
xcodebuild -scheme to-live-photo \
  -destination 'platform=iOS Simulator,name=iPhone 16 Pro' \
  build

# 真机 Archive
xcodebuild -scheme to-live-photo \
  -configuration Release \
  -destination 'generic/platform=iOS' \
  -archivePath build/to-live-photo.xcarchive \
  archive

🏗️ 项目结构

to-live-photo/
├── Sources/LivePhotoCore/          # Swift Package - 核心库
│   ├── LivePhotoCore.swift         # 生成管线、数据模型
│   ├── AIEnhancer/                 # Real-ESRGAN 超分辨率5 个模块)
│   └── Resources/                  # metadata.mov
├── to-live-photo/                  # iOS App
│   ├── Views/                      # SwiftUI 视图8 个)
│   │   ├── OnboardingView.swift    # 首次引导
│   │   ├── HomeView.swift          # 首页导入 + 最近作品
│   │   ├── EditorView.swift        # 编辑裁剪
│   │   ├── ProcessingView.swift    # 处理进度
│   │   ├── ResultView.swift        # 保存结果
│   │   ├── WallpaperGuideView.swift # 壁纸引导
│   │   ├── SettingsView.swift      # 设置中心
│   │   └── PrivacyPolicyView.swift # 隐私政策 / 使用条款
│   ├── AppState.swift              # 全局状态 + 导航路由
│   ├── ContentView.swift           # 根视图 + 截屏保护
│   ├── DesignSystem.swift          # Soft UI 设计令牌
│   ├── LanguageManager.swift       # 多语言切换
│   ├── RecentWorksManager.swift    # 最近作品管理
│   ├── Analytics.swift             # 埋点统计
│   ├── Localizable.xcstrings       # 主国际化文件9 语言)
│   └── InfoPlist.xcstrings         # Info.plist 国际化
├── scripts/                        # 构建 & 国际化脚本
├── app-store-screenshots/          # App Store 截图8 语言 × 6 张)
├── livephotomaker-pages/           # 官网子模块8 语言)
└── docs/                           # 文档

🔧 技术架构

生成管线

normalize → extractKeyFrame → aiEnhance → writePhotoMetadata → writeVideoMetadata → saveToAlbum → validate

核心参数

参数 默认值 说明
时长 0.917s 与 iPhone 原生 Live Photo 一致
分辨率 1080×1920 竖屏最大,可配置兼容模式降至 720p
帧率 60fps 兼容模式可降至 30fps
编码 H.264 兜底策略确保兼容性
HDR 转 SDR 壁纸场景更稳定

AI 超分辨率

  • 模型Real-ESRGAN x4plusCore ML通过 On-Demand Resources 按需下载)
  • 处理512×512 分块 + 64px 重叠 + 流式线性混合(内存优化)
  • 格式转换vImage 加速 BGRA↔RGBA
  • 放大:约 2.25x(输入 512→输出 2048

🌍 国际化

支持 9 种语言,应用内实时切换:

语言 代码
简体中文 zh-Hans
繁体中文 zh-Hant
English en
日本語 ja
한국어 ko
Français fr
Español es
العربية ar
跟随系统

📋 开发规范

Git 提交类型

  • feat: 新功能
  • fix: 修复缺陷
  • refactor: 重构(行为不变)
  • chore: 构建、依赖、工具
  • docs: 仅文档

代码规范

  • 遵循 DesignSystem.swift 令牌,禁止硬编码颜色/间距
  • 新增 View 必须包含 accessibilityLabel
  • 新增 View 必须适配深色模式和 iPad
  • 触控目标 ≥ 44pt

📄 文档

文档 说明
CLAUDE.md AI 助手指令(宪法文档)
TASK.md 里程碑与任务追踪
docs/USER_GUIDE.md 用户使用手册
docs/TEST_MATRIX.md 测试用例矩阵
docs/APP_STORE_METADATA.md 上架信息
docs/APP_STORE_METADATA_I18N.md 多语言上架信息

📜 许可证

MIT License - 详见 LICENSE


Made with ❤️ for iOS Live Photos

Description
No description provided
Readme 115 MiB
Languages
Swift 74.5%
Python 24.8%
Shell 0.7%