[English](../README.md) | [Deutsch](README.de.md) | [Français](README.fr.md) | [Español](README.es.md) | [Português](README.pt.md) | [Русский](README.ru.md) | 简体中文 | [日本語](README.ja.md) | [한국어](README.ko.md)
Lap 是一款开源、本地优先的照片管理工具,帮助您轻松浏览家庭相册、快速查找旧照片,并离线管理大型个人资料库。
它是云端照片服务的隐私替代方案:无强制上传、内置本地 AI 搜索、以文件夹为中心的工作流,且完全免费使用。
## 下载 Lap
打开 [最新版本发布页面](https://github.com/julyx10/lap/releases/latest),下载匹配您系统的文件:
| 平台 | 安装包 | 备注 |
| :-- | :-- | :-- |
| **macOS (Apple Silicon / Intel)** | `_aarch64.dmg` / `_x64.dmg` | 已通过 Apple 公证 |
| **Windows 10/11 (x64 / ARM64)** | `_x64_en-US.msi` / `_arm64_en-US.msi` | 未签名 — 如果 SmartScreen 阻止下载,请点击**仍要保留** |
| **Linux (x64 / ARM64)** | `_amd64.deb` / `_arm64.deb` | 适用于 Debian 系发行版(Ubuntu、Debian、Linux Mint 等) |
| **Linux (x64 / ARM64)** | `_amd64.AppImage` / `_aarch64.AppImage` | 赋予文件执行权限后,双击运行 |
### 使用 Homebrew 安装 macOS 版
```bash
brew tap julyx10/lap
brew install --cask lap
```
## 屏幕截图
## 为什么选择 Lap
- **本地优先设计**:照片保存在您自己的硬盘上,无需云账号或强制上传。
- **不锁定资料库**:直接使用现有文件夹,无需将所有内容导入封闭数据库。
- **本地 AI 工具**:搜索、相似照片、智能标签和人脸识别都在本机运行。
- **为大型资料库优化**:即使资料库包含超过 10 万个文件,浏览和整理依然流畅。
- **开源且免费**:无订阅、无强制生态绑定,代码可自行审查。
## 功能特性
- **灵活浏览资料库**:按日期、文件夹、地点、相机、镜头、标签、评分和人脸筛选,支持随机排序和小图过滤。
- **交互式地图视图**:在地图上聚合浏览带地理位置的照片和视频,并遵循当前筛选条件。
- **智能相册**:保存基于规则的视图,自定义分组和排序。
- **合集与标签**:批量整理所选文件,无需移动或复制原件。
- **本地 AI 搜索**:支持文本搜索、视觉相似搜索、主题、人脸聚类,以及可选的 50 多种语言搜索。
- **Apple 实况照片与 Google 动态照片**:支持动态播放,并可通过统一的智能相册条件筛选。
- **RAW + JPEG/HEIC 配对**:显示为一个项目,文件操作时同步处理关联文件。
- **RAW 缩略图与预览来源**:可选择 RAW 渲染或相机内嵌预览。
- **以文件夹为中心的工作流**:支持多个资料库、拖放导入、复制粘贴导入、文件系统同步,以及安全的移动、复制和删除。
- **按日期整理导入**:支持按日、月、年或单一文件夹导入,保留原文件名并跳过重复内容。
- **选片与对比工具**:包含四窗格图片对比查看器。
- **重复照片清理**:查看可释放空间,跨重复组批量清理。
- **自定义浏览体验**:支持最高 1024 px 缩略图、网格大小与圆角设置,以及快速预览或独立查看窗口。
- **桌面集成**:支持多个外部应用,以及 macOS、Windows 和 GNOME Linux 的壁纸设置。
- **内置编辑**:支持裁剪、旋转、翻转、缩放和基础图像调整。
- **广泛格式支持**:支持 60 多种照片、RAW 和视频格式。
### 天地图 Token 申请与配置
如需使用中国地区底图,可在地图设置中选择天地图,并填写自己的应用密钥(Key,也称 Token 或 `tk`)。
1. 在[天地图官网](https://www.tianditu.gov.cn/)注册并登录账号,按页面提示完成账号认证。
2. 打开[天地图控制台](https://console.tianditu.gov.cn/api/key),进入应用管理,选择创建新应用。
3. 填写应用名称(例如 `Lap`)等信息,应用类型选择 **浏览器端**,提交后复制生成的 **Key**。
4. 在 Lap 的 **设置 → 高级 → 地图** 中,将地图服务提供者设为 **中国(天地图)**,把 Key 粘贴到 **天地图 API Token**,按 Enter 或点击输入框外保存。
5. 返回地图视图,即可加载天地图底图。地图底图需要联网获取。
申请类型可参考 [QGIS 天地图插件的说明](https://github.com/liuxspro/qgis-plugin-tianditu#使用说明);控制台页面和认证要求以天地图官方为准。
## 元数据、合集与文件移动
Lap 以文件夹为中心,但 Lap 中显示的所有信息并非都嵌入在原始文件中。如果您也会在 Finder、资源管理器或其他照片应用中管理同一批文件夹,理解这一区别尤为重要。
### 会随文件保留的信息
- 您的原始照片和视频始终是现有文件夹中的普通文件。
- EXIF 拍摄日期、相机、镜头、GPS 和方向等已嵌入文件的元数据,会在 Lap 索引时从文件中读取。
- 保存内置图片编辑时,生成的图片会写入所选目标位置。
- 当您**在 Lap 中**重命名、移动、复制或删除文件时,Lap 会同步更新本地资料库记录,并将 Apple 实况照片组件、AAE 附属文件和已启用的 RAW + JPEG/HEIC 配对等关联资源一并处理。
### Lap 在本地存储的信息
以下是 Lap 的资料库数据,保存在 Lap 的本地数据库或资料库配置中,不会写入 EXIF、IPTC 或 XMP 附属文件:
- 合集、标签、注释、收藏、评分和选片状态(包括已选与已排除)
- 智能相册及其规则、分组、排序和顺序
- AI 搜索数据、人脸数据、缩略图以及其他索引或缓存数据
当文件在 Lap 外被复制、导出或移动时,这些数据不会随文件一起传递,也不会自动提供给其他应用。
### 在 Lap 外管理文件
Lap 可以重新扫描文件夹并发现许多文件系统变化。但在 Lap 外重命名、移动、替换或复制文件,可能影响仅保存在 Lap 中的整理信息。
若您依赖合集、标签、注释、收藏、评分或选片状态,建议在 Lap 中重命名和移动文件,以获得最可靠的结果。如果也在 Lap 外管理文件,请将 Lap 的数据库和配置与照片一同备份。您可以在 **设置 → 存储** 中管理数据库位置并创建备份。
删除 Lap 的数据库或配置会移除这些本地整理和索引数据,但不会删除您的原始媒体文件。
## 卸载 Lap
Lap 直接使用您现有的照片文件夹。卸载 Lap 或删除其数据库和缓存文件,**不会**删除您的原始照片。
常规卸载只会移除应用程序。如需彻底删除 Lap,请先退出 Lap,卸载应用程序,然后按照对应平台的命令删除本地数据库、缩略图缓存和配置文件。
### macOS
如果您通过 Homebrew 安装了 Lap:
```bash
brew uninstall --cask lap
```
如果您手动安装了 Lap,请退出 Lap,并将 `Applications` 文件夹中的 `Lap.app` 移到废纸篓。
删除所有 Lap 数据库、缓存和配置文件:
```bash
rm -rf "$HOME/Library/Application Support/com.julyx10.lap" \
"$HOME/Library/Caches/com.julyx10.lap" \
"$HOME/Library/WebKit/com.julyx10.lap"
rm -f "$HOME/Library/Preferences/com.julyx10.lap.plist"
```
### Windows
打开 **设置 > 应用 > 已安装的应用**,找到 **Lap** 并选择 **卸载**。
然后打开 PowerShell,删除所有 Lap 数据库、缓存和配置文件:
```powershell
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:LOCALAPPDATA\com.julyx10.lap"
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:APPDATA\com.julyx10.lap"
```
### Linux
使用 DEB 安装的用户,请卸载软件包:
```bash
sudo apt remove lap
```
使用 AppImage 的用户,请退出 Lap 并删除下载的 `.AppImage` 文件。
然后删除所有 Lap 数据库、缓存和配置文件:
```bash
rm -rf "$HOME/.local/share/com.julyx10.lap" \
"$HOME/.cache/com.julyx10.lap" \
"$HOME/.config/com.julyx10.lap"
```
如果您在 Lap 设置中选择了自定义数据库存储目录,请在确认其中仅包含 Lap 数据库文件后,单独删除该目录。
## 从源码构建
编译要求: Node.js 20+, pnpm, Rust stable.
```bash
# macOS 系统依赖
xcode-select --install
brew install nasm pkg-config autoconf automake libtool cmake
# Linux 系统依赖
# sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev \
# patchelf nasm clang pkg-config autoconf automake libtool cmake
# 克隆并编译
git clone --recursive https://github.com/julyx10/lap.git
cd lap
git submodule update --init --recursive
cargo install tauri-cli --version "^2.0.0" --locked
./scripts/download_models.sh # Windows: .\scripts\download_models.ps1
./scripts/download_ffmpeg_sidecar.sh # Windows: .\scripts\download_ffmpeg_sidecar.ps1
cd src-vite && pnpm install && cd ..
cargo tauri dev
```
## 支持格式
Lap 支持 60+ 种照片、RAW 和视频格式。
| 类型 | 格式清单 |
| :--- | :--- |
| 常规图片 | JPG/JPEG/JFIF, PNG, GIF, BMP, TIFF, WebP, HEIC/HEIF/HIF, AVIF, JXL, PSD, EXR, HDR/RGBE, TGA, JPEG 2000 (JP2/J2K/J2C/JPC/JPF/JPX), DDS, DPX, QOI |
| RAW 照片 | CR2, CR3, CRW, NEF, NRW, ARW, SRF, SR2, RAF, RW2, ORF, PEF, DNG, SRW, RWL, MRW, 3FR, MOS, DCR, KDC, ERF, MEF, RAW, MDC |
| 视频 | MP4, MOV, M4V, MKV, AVI, FLV, TS/M2TS, WMV, WebM, 3GP/3G2, F4V, VOB, MPG/MPEG, ASF, DIVX 等。所有平台均支持 H.264 播放;在不支持原生播放时,系统会自动进行兼容性处理。macOS 原生支持 HEVC/H.265 和 VP9。 |
### Linux 视频播放
Lap 使用系统 GStreamer 插件播放视频,AppImage 版本也不例外。如果在 Ubuntu、Debian 或 Linux Mint 上无法播放视频,请安装:
```bash
sudo apt install gstreamer1.0-libav gstreamer1.0-plugins-good
```
## 技术架构
- 核心: Tauri + Rust
- 前端: Vue + Vite + Tailwind CSS
- 数据: SQLite
### 关键库
| 库 | 用途 |
| :-- | :-- |
| [LibRaw](https://github.com/LibRaw/LibRaw) | RAW 图像解码与缩略图提取 |
| [libheif](https://github.com/strukturag/libheif) | HEIC/HEIF/HIF 图像解码与预览生成 |
| [libjpeg-turbo](https://libjpeg-turbo.org/) | 快速 JPEG 解码与缩略图生成 |
| [FFmpeg](https://ffmpeg.org/) | 视频处理与缩略图生成 |
| [Video.js](https://videojs.com/) | 跨平台视频播放界面 |
| [ONNX Runtime](https://onnxruntime.ai/) | 本地 AI 模型推理引擎 |
| [CLIP](https://github.com/openai/CLIP) | 图文相似度搜索 |
| [InsightFace](https://github.com/deepinsight/insightface) | 人脸检测与识别 |
| [Leaflet](https://leafletjs.com/) | 用于地理位置照片的交互式地图 |
| [daisyUI](https://daisyui.com/) | UI 组件库 |
## 开源许可证
GPL-3.0-or-later。详情请参阅 [LICENSE](../LICENSE)。
## 隐私
有关数据处理和可选在线服务的详情,请参阅[隐私政策](../PRIVACY.md)。