Skip to content

一个方便自己给照片整理排序的应用程序

Notifications You must be signed in to change notification settings

pilipala233/PhotoOrganizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Photo Organizer

一个基于 Electron 的跨平台照片和视频整理工具,使用 EXIF 元数据智能分类文件。

功能特点

  • 📁 智能文件整理:根据照片/视频的日期自动分类
  • 📅 多种排序模式
    • 按年月:2024年/10月/
    • 按年月日:2024年/10月/11日/
  • 🕐 灵活的日期来源
    • 仅EXIF模式:只整理有EXIF元数据的文件,严格模式
    • EXIF+回退模式:优先使用EXIF,无EXIF时使用文件创建时间,确保所有文件都能整理
  • 🔒 安全复制模式:只复制文件,不移动原文件,确保数据安全
  • 📊 详细追踪记录
    • 非媒体文件(有EXIF但非照片/视频)
    • 使用文件创建时间的文件(EXIF+回退模式)
    • 无EXIF文件(已跳过的文件)
  • 💻 跨平台支持:Windows 和 macOS 双平台支持

安装

从源码运行

在 Windows 上:

# 克隆仓库
git clone <repository-url>
cd PhotoOrganizer

# 安装依赖
npm install

# 运行应用
npm start

在 macOS 上:

# 克隆仓库
git clone <repository-url>
cd PhotoOrganizer

# 安装依赖
npm install

# 运行应用
npm start

打包应用

Windows 打包(在 Windows 上执行)

安装版(NSIS)

npm run build:win

生成文件:dist/Photo Organizer Setup 1.0.0.exe

绿色便携版(推荐)

npm run build:win-portable

生成文件:dist/Photo Organizer-1.0.0-portable.exe

  • ✅ 无需安装,双击即用
  • ✅ 可放在 U盘随身携带
  • ✅ 不写注册表

macOS 打包(在 macOS 上执行)

通用版本(M系列 + Intel)

npm run build:mac

生成文件:

  • dist/Photo Organizer-1.0.0-universal.dmg(安装镜像)
  • dist/Photo Organizer-1.0.0-mac-universal.zip(压缩包)

仅 M系列芯片(Apple Silicon)

npm run build:mac-arm64

仅 Intel 芯片

npm run build:mac-x64

构建所有平台

npm run build

使用说明

  1. 选择源文件夹:点击"选择文件夹"按钮,选择包含照片/视频的文件夹
  2. 选择输出文件夹:选择整理后文件的存放位置(必须为空文件夹)
  3. 选择排序方式
    • 按年月排序:文件按 年份/月份/ 的格式分类(如:2024年/10月/)
    • 按年月日排序:文件按 年份/月份/日期/ 的格式分类(如:2024年/10月/15日/)
  4. 选择日期来源
    • 仅使用EXIF日期:只整理有EXIF元数据的文件,无EXIF的会被跳过(严格模式)
    • EXIF优先,回退到文件创建日期:优先使用EXIF,无EXIF时使用文件创建时间,确保所有文件都能整理(推荐)
  5. 开始整理:点击"开始整理"按钮,等待处理完成
  6. 查看结果:处理完成后会显示:
    • 统计信息(已处理、已复制、已跳过等)
    • 非媒体文件列表(橙色表格)
    • 使用文件创建时间的文件列表(蓝色表格,仅EXIF+回退模式)
    • 无EXIF文件列表(黄色表格,已跳过的文件)

支持的文件格式

图片格式(15种)

  • 常规格式:JPG/JPEG, PNG, GIF, BMP, TIFF/TIF, WebP
  • 移动设备:HEIC/HEIF(iPhone)
  • 专业RAW格式:RAW, CR2(Canon), NEF(Nikon), ARW(Sony), DNG(Adobe)

视频格式(11种)

  • 常规格式:MP4, MOV, AVI, MKV, WMV, FLV, WebM, M4V
  • 移动设备:3GP
  • 高清摄像机:MTS, M2TS

技术栈

  • Electron - 跨平台桌面应用框架
  • exiftool-vendored - EXIF 数据读取
  • 原生 HTML/CSS/JavaScript - 界面实现

注意事项

  • 日期来源选择
    • 仅EXIF模式:适合专业摄影作品整理,只处理相机/手机拍摄的照片
    • EXIF+回退模式:适合混合文件整理,包括下载的图片、截图等
  • 空文件夹要求:输出文件夹必须为空(系统隐藏文件如 .DS_Store 会自动忽略),避免文件混乱
  • 隐藏文件处理
    • 所有以点开头的文件和文件夹(如 .git.config.DS_Store 等)会被自动跳过
    • 这适用于 Windows、macOS 系统
    • 如果您有以点开头的重要文件需要整理,请先重命名
  • 跳过文件记录:没有日期信息的文件会在界面中列出,方便手动处理
  • 安全复制:所有操作都是复制而非移动,确保原文件安全
  • 非媒体文件:非照片/视频文件如果有 EXIF 数据也会参与整理,并在"非媒体文件列表"中特别标注
  • 文件创建时间:在EXIF+回退模式下,使用的是文件的创建时间(birthtime),而不是修改时间

项目结构

PhotoOrganizer/
├── src/
│   ├── main.js           # Electron 主进程
│   ├── preload.js        # 预加载脚本
│   └── renderer/         # 渲染进程(界面)
│       ├── index.html
│       ├── styles.css
│       └── renderer.js
├── package.json
└── README.md

开发

依赖项

  • Node.js >= 16.x
  • npm >= 8.x

开发模式

npm start

构建发布版本

npm run build

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request!

About

一个方便自己给照片整理排序的应用程序

Resources

Stars

Watchers

Forks

Packages

No packages published