Czkawka 相似图片查重:免费开源,3 步扫完全库
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
手机相册翻了半天,同一桌年夜饭存了五份,只是横拍竖拍、加了点水印就判成两张不同照片。Czkawka 是个用内存安全的 Rust 写的免费开源相似图片查重工具,纯本地跑、不联网、不收任何信息,跨 Windows、macOS、Linux。
3 步跑完全库扫描
不用装图形界面,命令行走通就行:
git clone https://gitcode.com/GitHub_Trending/cz/czkawka cd czkawka && cargo build --release --bin czkawka_cli ./target/release/czkawka_cli image -d /path/to/your/images第一步克隆源码,第二步编译出命令行版(首次约几分钟),第三步把-d指向你的照片目录,相似组直接打印在终端里。想跳过某些文件夹用-e排除,比如*/.git。
横拍竖拍也认得:先读"摆放说明"再比对
两张内容一模一样、只是拍摄朝向不同的照片,普通工具会因像素排列不同而判成两张。
现象:你手机拍竖照,传到电脑被自动转成横的,查重却认不出它们是同一张。
原理:Czkawka 在比较前先读出照片自带的 EXIF 方向标签,在内存里把它转到正确朝向,再算相似度,不落地、不建临时文件。
let rotation = get_rotation_from_exif(path).unwrap_or(None); match rotation { Some(ExifOrientation::Normal) | None => img, Some(ExifOrientation::Rotate90CW) => img.rotate90(), Some(ExifOrientation::Rotate180) => img.rotate180(), Some(ExifOrientation::MirrorHorizontal) => img.fliph(), // 其余 5 种方向同理 };类比:就像先看照片角落那张"此面朝上"的小贴纸,把歪的摆正了,再动手比对。这段逻辑在 czkawka_core/src/common/image.rs。
缩放加水印也躲不掉:压成指纹再打分
逐像素比对的方案,动一个像素就漏。Czkawka 用感知哈希把图压成一枚"指纹",再按像素差异打分归组,所以缩过尺寸、加过水印、裁掉一点边的版本,都能落进同一组。"差多少算相似"你自己定一个阈值,不用反复试参数。
和逐字节比对比,强在哪
老办法只认文件大小和哈希,一改分辨率、加个水印、翻个身就失效。Czkawka 把朝向、分辨率差异这些"假不同"抹平,真正贴近你眼睛看到的"同一张"。
- 支持 JPEG、PNG、WebP、JXL,HEIC、AVIF、RAW 也能识别(后几类需装对应库)
- 完全离线,照片不出你这台机器
- 找不准就调阈值,比逐字节比多一条可调的手柄
适合谁,以及高频疑问
刚整理完手机相册的人、管设计素材库的运营、想给服务器磁盘瘦身又不想装图形界面的管理员,都能用上。
- 要不要联网?不用,全程本地运行,不上传、不收集。
- 支持哪些格式?JPEG、PNG、WebP、JXL 直接扫,HEIC、AVIF、RAW 装对应库后可识别。
- 能顺带找别的吗?同一套核心还能查完全重复、空文件夹、大文件、相似视频,一条命令换个子命令就行。
把朝向、分辨率、水印这些"假不同"都抹平,Czkawka 让相似图片查重贴近人眼看到的"同一张"。建个目录、跑一条命令,重复的那批就能清出来了。
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考