odiff 是一款高速的图像对比工具,用命令行或 Node.js 接口比较两张图片的视觉差异并输出差分图,适合视觉回归测试,可在各主流平台运行。
- v4.5.0
- 发布于
- 2026年7月23日
- 3,224
- 星标
- 665
- 下载
- 同步于
- 2026年10月4日
最新版本
v4.5.02026年7月23日 10:36下载慢?可在上方随时切换镜像源
项目说明
项目概述
odiff 是一款以速度为核心的图像对比工具,用来判断两张图片在视觉上是否存在差异,并把差异区域标注出来。它面向截图、照片、AI 生成图这类高度相似的图片,比较结果在毫秒级返回。软件现在用 Zig 编写并做了 SIMD 指令优化,提供命令行工具和 Node.js 接口,很适合接入自动化测试与视觉回归流程。
| 项目 | 内容 |
|---|---|
| 运行平台 | Windows、macOS、Linux |
| 软件类型 | 图像对比 / 视觉回归 |
| 使用方式 | 命令行 + Node.js 接口 |
| 开源许可 | MIT |
毫秒级找出两张图的视觉差异。
主要功能
- 跨格式对比:不必统一格式,可以直接比较 JPG 与 PNG 等不同格式的图片
- 多格式支持:支持 PNG、JPEG、WebP 与 TIFF 等常见图片格式
- 抗锯齿识别:能识别并忽略抗锯齿造成的细微像素差
- 区域忽略:可指定忽略某些区域,避免固定位置的干扰影响判定
- 差异可视化:把差异区域输出成一张差分图,问题一目了然
- 视觉算法判定:按人眼感知方式计算差异,结论更贴近肉眼观感
- SIMD 加速:针对 SSE2、AVX2、AVX512 与 NEON 做了指令级优化
- 内存可控:处理大图时占用可控,适合放进持续集成环境
- 服务模式:提供常驻服务模式,省去反复启动进程的开销
- 终端直显:不输出差分图时,可直接在支持的终端里显示结果
适用人群
- 前端与自动化测试工程师
- 视觉回归测试开发者
- 截图对比与验收测试人员
- 需要批量比图的脚本开发者
快速上手
- 安装 odiff:用
npm install odiff-bin,或从发行页下载对应平台的二进制文件 - 运行
odiff a.png b.png直接比较,结果会显示在支持图形协议的终端里 - 运行
odiff a.png b.png diff.png把差异输出成图片 - 在 Node.js 中调用
compare(),取得是否一致与差异原因 - 在 Playwright、Cypress 等测试框架里接入,做持续视觉校验
核心优势
- 速度很快:毫秒级返回结果,批量比对不拖时间
- 接入简单:命令行与 Node.js 两种用法,几分钟就能跑起来
- 判定贴近肉眼:按视觉感知算法判断差异,减少误报
- 适合自动化:内存占用可控,能稳定运行在持续集成流水线里
- 安装省事:npm 一条命令装好,自动匹配当前平台的二进制
系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows、macOS、Linux |
| 运行方式 | 命令行工具或 Node.js 调用 |
| 支持格式 | PNG、JPEG、WebP、TIFF |
| 安装渠道 | npm 包或发行页二进制文件 |
注意事项
- 差分图只能是 PNG:输出差异图时格式固定为 PNG,不支持其他格式
- 适合相似图片:工具针对高度相似的图片设计,差异过大的图片判定意义有限
- 终端显示有前提:不输出差分图时,依赖终端支持 kitty 图形协议才能直接显示
- 忽略区域要谨慎:忽略区域过多会掩盖真正的差异,配置时需要权衡
历史版本
排序