dmtrKovalenko

odiff

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 做了指令级优化
  • 内存可控:处理大图时占用可控,适合放进持续集成环境
  • 服务模式:提供常驻服务模式,省去反复启动进程的开销
  • 终端直显:不输出差分图时,可直接在支持的终端里显示结果

适用人群

  • 前端与自动化测试工程师
  • 视觉回归测试开发者
  • 截图对比与验收测试人员
  • 需要批量比图的脚本开发者

快速上手

  1. 安装 odiff:用 npm install odiff-bin,或从发行页下载对应平台的二进制文件
  2. 运行 odiff a.png b.png 直接比较,结果会显示在支持图形协议的终端里
  3. 运行 odiff a.png b.png diff.png 把差异输出成图片
  4. 在 Node.js 中调用 compare(),取得是否一致与差异原因
  5. 在 Playwright、Cypress 等测试框架里接入,做持续视觉校验

核心优势

  • 速度很快:毫秒级返回结果,批量比对不拖时间
  • 接入简单:命令行与 Node.js 两种用法,几分钟就能跑起来
  • 判定贴近肉眼:按视觉感知算法判断差异,减少误报
  • 适合自动化:内存占用可控,能稳定运行在持续集成流水线里
  • 安装省事:npm 一条命令装好,自动匹配当前平台的二进制

系统要求

项目 要求
操作系统 Windows、macOS、Linux
运行方式 命令行工具或 Node.js 调用
支持格式 PNG、JPEG、WebP、TIFF
安装渠道 npm 包或发行页二进制文件

注意事项

  • 差分图只能是 PNG:输出差异图时格式固定为 PNG,不支持其他格式
  • 适合相似图片:工具针对高度相似的图片设计,差异过大的图片判定意义有限
  • 终端显示有前提:不输出差分图时,依赖终端支持 kitty 图形协议才能直接显示
  • 忽略区域要谨慎:忽略区域过多会掩盖真正的差异,配置时需要权衡

历史版本

排序