
千万级本地图库秒级以图搜图实战ImageSearch拖图即搜与EXIF隐私清理全攻略【免费下载链接】ImageSearch基于.NET10的本地硬盘千万级图库以图搜图案例Demo和图片exif信息移除小工具分享项目地址: https://gitcode.com/gh_mirrors/im/ImageSearch晚上十点设计师老周对着屏幕叹了口气。客户要背景是海边、构图里有灯塔的那张老照片做延展他翻了快一个钟头文件夹点开又合上——上万张素材文件名全是IMG_20210809_204817.jpg这种天书Windows 自带搜索只认文件名一个字都搜不出来。他盯着桌面发呆心想要是能拿一张图去找图就好了。巧了还真有这种东西而且就藏在下面这个叫ImageSearch的开源项目里。揭晓答案一个仓库打包了两个救命的本地小工具ImageSearch 是基于 .NET 10 开发的本地图片工具集它不联网、不上传所有运算都在你硬盘里完成。仓库里躺着两个互不干扰的小工具以图搜图给图库建立索引把示例图拖进窗口秒级吐出相似结果ExifStraper命令行小工具批量抹掉照片里的 GPS、相机型号、作者等 EXIF 隐私信息。一个是找图的一个是护隐私的都完全开源免费Windows 7 及以上、装上 .NET 10 Desktop 运行时就能跑。最快上手5 分钟跑通第一次拖图即搜按下面四步走你的第一次搜索马上就能出结果获取代码git clone https://gitcode.com/gh_mirrors/im/ImageSearch cd ImageSearch恢复依赖会下载所需组件等它转完就行dotnet restore 以图搜图/以图搜图.csproj编译整个解决方案dotnet build 以图搜图.sln -c Release启动主程序cd 以图搜图/bin/Release/net10.0-windows/ 以图搜图.exe程序起来后把图库文件夹拖进目录框等索引建完再把你手头那张示例图拖进图片框回车。结果列表就出来了双击任意一条还能直接打开原图。内功心法它凭什么秒级找到长得像的图你可以把每张图想象成一个人的脸算法做的事就是给这张脸取一个数字指纹——专业术语叫图像哈希。不管图片被压缩、调色还是加了小水印指纹的核心特征都还在比对指纹就能算出相似度。主程序内置三把不同精度的尺子DifferenceHash跑得最快适合海量图库快速初筛DctHash32速度与准确度兼顾日常用它最省心DctHash64最精细适合设计稿查重这种高精度需求。相似度阈值默认卡在 70%这是作者反复测试得出的经验值——低于这个数肉眼看上去已经完全不是一张图了再往下搜纯属浪费算力。实战演示从找图到清隐私跟着走一遍我们模拟老周的完整工作流。他先把那堆素材按2023-婚礼2023-旅拍分好文件夹一次性拖进图库目录索引进度条滚了一会儿就完成了。他把手机上随手拍的灯塔样图传到电脑复制后回到程序里直接CtrlV秒级弹出一串结果相似度从高到低排得明明白白。这里来了个小插曲——他要的那张原图是旋转过的竖构图前两次搜索结果里愣是没有。他差点以为程序不靠谱结果发现界面上有个检查旋转的选项没勾。勾上再搜那张转了 90° 的照片立刻出现在结果第一位。原来算法默认只比对正放的指纹勾选后会自动把 90°、180°、270° 的旋转变体都算一遍。找到图活还没干完。老周记得他拍的那张照片里带 GPS直接交付给客户等于把拍摄地都送出去了。他打开第二个工具cd Straper dotnet build Straper.csproj -c Release Straper.exe D:\个人照片把整个相册目录甩给它GPS 经纬度、相机型号、作者版权、IPTC/XMP 元数据被一口气抹干净连文件夹名里的繁体字都被顺手转成了简体。跑完再去右键看文件属性信息栏干干净净。进阶玩法配置项与 HTTP API把搜图变成本地搜索服务主程序目录下的config.ini握着三个开关[Global] IndexAutoUpdatetrue ; 启用后每小时自动更新一次索引 RunServerfalse ; 改成 true 开启 HTTP 服务 HttpPort5000 RunAsAdmintrue ; 管理员模式可能导致网页拖拽失效把RunServer改成true再启动程序就会在 5000 端口挂起一个本地接口访问http://localhost:5000/api还能看到交互式文档。主要就两个接口PATCH /index?dir目录removeInvalidtrue创建或更新指定目录的索引POST /search上传图片并搜索支持similar相似度、algorithm1 是 DifferenceHash2 是 DctHash324 是 DctHash647 是全部、checkRotated查旋转等参数。配合几行 Python就能把搜图接进自己的自动化流程import requests resp requests.post( http://localhost:5000/search, files{file: open(query.jpg, rb)}, data{similar: 75, algorithm: 7, checkRotated: True} ) for item in resp.json(): print(f相似度: {item[匹配度]:.2%} 路径: {item[路径]})ExifStraper 那边还有个更省事的玩法执行Straper.exe reg-menu注册右键菜单之后在任何文件夹或图片上右键一键就能调用清理全程不用开命令行。想更彻底加-a参数开启全部字段清除的暴力模式。避坑速查最常见的四个坑一句话解法现象一句话解法第一次搜索特别慢是在建索引耐心等一次之后秒级响应相似图搜不出来阈值太高降到 7075 再试混进一堆无关图阈值太低拉回 8085旋转过的图找不到搜索时勾上检查旋转另外如果你装了 Everything程序会自动调用它来加速目录扫描不想要这个联动把程序目录下的Everything64.dll删掉即可。程序默认会自动请求管理员权限如果发现网页拖拽搜索不生效多半是 UAC 的限制在config.ini里把RunAsAdmin改成false就好。写在最后回到老周那个加班的晚上——现在他只需要一张样图拖进去两秒照片到手再顺手清掉 EXIF 隐私安心交付。图多到找不到、隐私藏在照片里、本地工具没有好用的 API这三个几乎人人都会撞上的问题被一个仓库的两个小工具全收拾了。别让你的图库继续沉睡在硬盘里了现在就把 ImageSearch 克隆下来亲手搜出第一张记忆中的照片吧。【免费下载链接】ImageSearch基于.NET10的本地硬盘千万级图库以图搜图案例Demo和图片exif信息移除小工具分享项目地址: https://gitcode.com/gh_mirrors/im/ImageSearch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考