@kimi-tools/picture
v1.2.7
Published
A CLI tool to find and remove duplicate images
Maintainers
Readme
Kimi Picture Deduplicator
Kimi Picture Deduplicator 是一个智能的图片去重工具,可以帮助你快速识别并安全地移除重复的图片文件。
功能特性
- 🔄 智能重复检测:基于图像内容而非文件名来检测重复图片
- 🛡️ 安全删除流程:将重复文件移动到 "delete" 文件夹而不是直接删除
- 📁 条件性删除文件夹:仅在发现重复文件时创建 "delete" 文件夹
- 📂 深度遍历:支持递归扫描子目录中的所有图片文件
- 🗂️ 拍平文件夹结构:将深层目录结构中的文件整理到统一目录
- 🧹 空文件夹清理:自动清理处理后留下的空目录
- ⚡ 高性能处理:通过缩略图处理加速重复检测过程
- 🖼️ 多格式支持:支持 JPG, PNG, GIF, BMP, TIFF, WebP 等常见图片格式
- ✨ 智能重命名:支持按时间戳或随机数重命名图片文件
安装要求
在使用之前,请确保已安装以下依赖:
系统依赖
- libvips: 高性能图片处理库
在 macOS 上安装 libvips:
brew install vips在 Ubuntu/Debian 上安装 libvips:
sudo apt-get install libvips-devNode.js 依赖
npm install使用方法
命令行使用
# 基本使用 - 扫描当前目录
kimi-pic repeat
# 深度遍历模式 - 递归扫描所有子目录
kimi-pic repeat -d
# 拍平文件夹结构 - 将子目录中的文件移到顶层并保持唯一性
kimi-pic flat
# 显示版本号
kimi-pic version
# 按随机数重命名当前目录中的图片
kimi-pic rename -r
# 按时间戳重命名当前目录中的图片(无时间信息时使用随机数)
kimi-pic rename -t开发模式运行
# 克隆项目后,进入 picture 目录
cd packages/picture
# 运行命令
node bin/pic.js repeat参数说明
| 参数 | 别名 | 描述 |
|------|------|------|
| --deep | -d | 深度遍历文件夹,递归扫描所有子目录 |
命令说明
| 命令 | 描述 |
|------|------|
| repeat | 查找并移动重复图片 |
| flat | 将所有图片移动到当前目录 |
| version | 显示版本号 |
| rename | 重命名当前目录中的图片文件 |
| rename -r | 使用10位随机数重命名当前目录中的所有图片 |
| rename -t | 使用图片创建时间重命名当前目录中的所有图片(无时间信息时使用随机数) |
工作原理
- 扫描阶段:遍历指定目录中的所有文件,识别图片文件
- 处理阶段:为每张图片生成内容哈希值(基于缩略图)
- 比较阶段:比较哈希值以识别重复图片
- 移动阶段:将重复文件移动到 "delete" 文件夹
- 清理阶段:根据选项清理空目录
安全机制
- 非破坏性操作:始终将文件移动到 "delete" 文件夹而非直接删除
- 条件性创建:"delete" 文件夹仅在发现重复文件时创建
- 用户确认:需要用户手动确认后才能永久删除文件
- 进度显示:实时显示处理进度和统计信息
输出示例
正在扫描目录: /path/to/your/photos
目录中共有 1250 个文件:
├─ 图片文件: 1200
└─ 非图片文件: 50
[██████████████████████████████████████████████████] 100% (1200/1200)
处理完成!
=== 处理统计 ===
总文件数: 1250
图片文件: 1200
非图片文件: 50
重复文件: 150
已移动的文件:
1. IMG_0001.jpg (哈希: a1b2c3d4e5f6...)
2. DSC_0001.jpg (哈希: a1b2c3d4e5f6...)
...
请检查 "delete" 文件夹中的文件,确认无误后可手动删除它们。注意事项
- 工具只会处理支持的图片格式文件
- 对于损坏或无法读取的图片文件会跳过并显示错误信息
- 拍平模式下,来自不同子目录的同名文件会被自动重命名
- 处理大量文件时可能需要一些时间,请耐心等待
贡献
欢迎提交 Issue 和 Pull Request 来改进这个工具。
