复现并超越 iPhone iOS 锁屏照片“智能裁剪 + 深度效果”的工具/引擎。
让普通随手拍的照片,在锁屏上呈现专业、美观、主体突出、构图精妙的视觉效果(类似或更好 iOS 16+ / iOS 26 Spatial Scenes)。
- 输入:用户普通照片(构图一般、主体不突出、边缘杂乱也可)。
- 输出:推荐的裁剪版本 + 可选主体分离/分层合成 + 锁屏预览模拟(含时钟互动、视差)。
- 一键导出适合 iPhone 设置的壁纸(支持不同机型安全区)。
iOS 的“魔法”不是简单裁剪,而是:
- 高质量 class-agnostic salient object segmentation(主体任意物体,on-device)。
- 主体感知 + 锁屏 UI 感知的 framing。
- 分层渲染(Depth Effect / Spatial)让照片瞬间高级。
详见 docs/research/20250603-iOS锁屏深度效果技术原理解析与开源替代方案.md。
- 纯前端项目:Vite + TypeScript + Tailwind + Canvas(完全客户端)。
- 核心功能:smartcrop.js 智能构图 + 实时 iPhone 锁屏交互编辑 + 动态 Depth Effect 分层模拟。
- 已提供
vercel.json,可零配置直接部署到 Vercel(推荐)。 - 旧 Python 代码已归档到
legacy/python/。 - 本地运行:
npm install && npm run dev。
npm install
npm run dev浏览器会自动打开(默认 http://localhost:5173)。
使用方式:
- 拖拽或点击上传一张照片(构图一般的也没关系)
- 在 iPhone 锁屏模拟器里拖动平移 / 滚轮缩放照片
- 点击「智能推荐」按钮,使用 smartcrop.js 自动给出好构图起点
- 实时看到右侧其他尺寸结果跟随更新
- 右侧「全部导出为 PNG」或点击单张下载
核心亮点:
- 纯前端 Canvas 实现 iPhone 锁屏交互(类似真机设置壁纸)
- 智能构图推荐(smartcrop.js)
- 动态 Depth Effect 模拟(时钟被主体“盖住”)
- 支持多种常用输出尺寸(iPhone 锁屏、壁纸、社交竖版、正方形等)
所有处理都在浏览器本地完成,照片不会上传到任何服务器。
.
├── .gitignore
├── vercel.json # Vercel 部署配置
├── package.json
├── vite.config.ts
├── CLAUDE.md
├── README.md
├── index.html
├── src/
│ ├── main.ts # 应用入口 + UI 交互
│ ├── CropEngine.ts # 核心:smartcrop + transform + Canvas 绘制 + depth 模拟
│ └── style.css
├── legacy/
│ └── python/ # 旧版 Python Gradio 实现(仅供算法参考)
├── docs/
│ └── research/ # 技术调研(iOS 机制 + 开源方案)
└── dist/ # 构建产物(可直接部署)
这个项目是标准的 Vite 静态站点,零配置即可部署到 Vercel,我们已提供 vercel.json。
- 把当前代码 push 到 GitHub
- 打开 https://vercel.com/new
- 导入你的 GitHub 仓库
- Vercel 自动检测为 Vite 项目,直接点击 Deploy
部署完成后:
- 每次
git push→ 自动生产部署 - 每次 Pull Request → 自动生成 Preview 链接(可直接测试)
npx vercel首次会引导登录和项目设置,之后:
npx vercel --prod # 直接部署到生产环境vercel.json 已配置好:
- 框架识别为 Vite
- 构建命令
npm run build - 输出目录
dist - 提供 SPA fallback(便于未来扩展)
部署后完全免费,支持自定义域名、边缘函数(如果以后需要)、全球加速。
npm run build
# 产物在 dist/ 目录,可用任意静态服务器预览
npx serve dist- 集成真实浏览器端主体分割(@mediapipe/tasks-vision),让 Depth 效果更接近原生 iOS。
- 支持自定义输出尺寸和更多 iPhone 机型比例。
- 增加“视差预览”(鼠标/设备倾斜模拟 spatial 效果)。
- 添加导出时自动生成 iPhone 锁屏推荐设置提示。
- 持续用真实“一般照片”测试并优化 CropEngine 构图逻辑。
严格遵守 CLAUDE.md(新项目规范第一)。所有变更必须更新文档 + 跑验证。
真实照片测试驱动 + 前端视觉检查优先(尤其是 iPhone mock 的时钟定位、分层效果、文字可读性)。
用第一性原理做让用户“哇”一下的照片工具。