Skip to content

Latest commit

 

History

History
137 lines (97 loc) · 6.49 KB

README.md

File metadata and controls

137 lines (97 loc) · 6.49 KB
Photo Insight 圆角图标与手写字标

让照片元数据,成为摄影记忆。

一款隐私优先、完全在本机运行的 macOS 照片元数据分析工具。
从 EXIF、GPS、器材与文件信息中,看见你的拍摄习惯和摄影轨迹。

项目官网 · 下载最新版 · 使用指南 · English

macOS 13+ Universal Swift 6 Tests License


Photo Insight 核心能力:本地扫描、EXIF 分析、地理洞察与报告导出

源代码可用,禁止商业使用。 本项目采用 PolyForm Noncommercial 1.0.0,允许个人学习、研究、实验和其他非商业用途。由于许可证限制商业使用,本项目不是 OSI 定义下的开源软件。

✦ 功能亮点

  • 自定义扫描方案:提供快速、摄影和完整预设,也可保存多个自定义方案,分别配置图片格式、RAW、排除规则、隐藏项目、符号链接和精确重复文件策略。
  • 扫描前预览:应用方案前查看候选照片、格式分布、排除目录、跳过项目和访问错误统计。
  • 本地照片索引:支持 JPG、JPEG、PNG、HEIC、HEIF、TIFF、WebP 与常见 RAW 格式,不上传照片文件。
  • 增量更新:持久化文件指纹、EXIF 和地址缓存,只重新分析新增或变更的照片。
  • 照片浏览:随机轮播、瀑布流、文件树、收藏和智能相册。
  • EXIF 数据表:浏览、筛选并导出 28 列照片元数据。
  • 深度分析:时间节奏、器材组合、曝光参数、焦段分布、画幅构图、相关性和非参数统计。
  • 地理分析:照片聚类、密度图、省市分布、经纬度范围、海拔和拍摄行程。
  • 报告导出:导出 CSV、JSON、PDF 和可交互 HTML 分析报告。
  • 双语与外观:简体中文/英文,以及跟随系统、浅色和深色模式。

◉ 分析结果示例

数据概览与时间节律

Photo Insight 数据概览与时间节律分析

焦段分布与焦段箱线图

Photo Insight 焦段分布与焦段箱线图

以上示例依据 Photo Insight 的真实分析数据绘制为 SVG,可无损缩放;使用项目内置的中国旅行摄影模拟数据。

↓ 下载

在项目官网了解功能和使用方式;当前 v1.1.1 通过 GitHub Releases 提供 Universal macOS 安装包,已使用 Developer ID 签名、启用 Hardened Runtime,并通过 Apple 公证及附加公证票据。

  • 系统要求:macOS 13 Ventura 或更高版本
  • 处理器:Apple Silicon 或 Intel
  • 网络:基础分析可离线使用;地址解析和在线地图需要联网

下载 ZIP 后解压并将 Photo Insight 移入“应用程序”文件夹即可运行。首次启动时 macOS 可能提示应用来自互联网,请确认打开;无需关闭 Gatekeeper 或修改系统安全策略。

⌘ 从源码运行

需要完整安装 Xcode,并在 Xcode 设置中选择 Command Line Tools。

git clone https://github.com/SamsonRuan/Photo-Insight.git
cd Photo-Insight
./script/build_and_run.sh

运行测试:

swift test --disable-sandbox

构建本机架构的 .app:

./scripts/build-app.sh

构建 Apple Silicon + Intel 通用发布包:

./scripts/package-release.sh

未提供 Developer ID 时生成的是临时签名构建,仅适合本地测试。正式发布流程见 发布指南。

◎ 使用方法

  1. 打开 Photo Insight,在设置菜单中选择照片根目录。
  2. 选择快速、摄影或完整扫描预设;需要时建立并预览自己的扫描方案。
  3. 点击“更新照片”建立本地索引。
  4. 使用首页、文件树、EXIF 表格和数据分析页面查看照片。
  5. 根据器材、时间、地点、曝光或构图条件建立智能相册。
  6. 在分析页面导出数据或完整报告。

◇ 隐私

照片和索引默认保存在用户的 Mac 上,项目不包含账号系统、广告或分析 SDK。使用 GPS 地址解析、OpenFreeMap 或 OpenStreetMap 地图时,相关网络服务会收到完成请求所必需的数据和网络信息。完整说明见 隐私政策。

⌘ 项目结构

Photo-Insight/
├── Sources/
│   └── PhotoExifLab/          # SwiftUI 应用源码
├── Tests/
│   └── PhotoExifLabTests/     # 自动化测试
├── AppResources/
│   ├── Data/                  # 内置模拟数据
│   ├── InteractiveReport/     # 交互式报告资源
│   └── WebMap/                # 地图运行时与地理数据
├── docs/
│   └── assets/                # GitHub Pages 与图片资源
├── scripts/                   # 构建、打包和发布检查
├── script/
│   └── build_and_run.sh       # 本地构建与启动入口
├── .github/
│   ├── workflows/             # CI 与 Pages 工作流
│   └── ISSUE_TEMPLATE/        # Issue 模板
├── Package.swift              # Swift Package 配置
├── LICENSE.md                 # 非商业许可证
└── README.md

♡ 参与贡献

欢迎提交错误报告、功能建议、文档改进和非商业用途的代码贡献。开始之前请阅读 贡献指南 和 行为准则。安全问题请按照 安全政策 私下报告。

§ 许可证

Photo Insight 采用 PolyForm Noncommercial License 1.0.0。个人学习、研究、实验和其他非商业用途可以使用、修改和分发;商业用途需要另行取得书面授权。

第三方组件和地图数据各自适用其原始许可证,详见 第三方声明。