Repolode
dmtrKovalenko

dmtrKovalenko/odiff

Zig製の高速なSIMD最適化画像比較ツール。CLIとNode.js APIを備えています。

スター
3,272
フォーク
118
未解決の Issue
16
最終コミット
5 日前

これは何?

odiffは2枚の画像をピクセル単位で比較し、変更箇所を強調した差分画像を生成します。ビルドごとのスクリーンショットをベースラインと照合するビジュアルリグレッションテストを主な用途としていますが、写真やAI生成画像など、似た画像の比較にも使えます。

単体で動作するコマンドラインバイナリとして実行できるほか、odiff-binパッケージを介してNode.jsから呼び出すこともできます。このパッケージは、1回限りの比較関数と、毎回新しいプロセスを起動せずに多数の比較を実行できる常駐型のODiffServerを提供します。ほかのランタイム向けには、JSON stdioプロトコルを使うサーバーモードも利用できます。比較時には、しきい値の調整、アンチエイリアス検出、無視する領域の指定に加え、変更された行・列インデックスの任意出力に対応しています。

対応フォーマットはPNG、JPEG、WebP、TIFFで、異なるフォーマット間の画像比較も可能です。コア部分はZigで実装され、SSE2、AVX2、AVX512、NEON向けのSIMD処理を備えています。Playwright、Cypress、R、および複数のビジュアルテストサービスとの連携方法が紹介されています。

主な機能

  • 01ピクセル単位で比較し、変更箇所を強調した差分画像を出力
  • 02PNG、JPEG、WebP、TIFFに対応し、異なるフォーマット間の比較も可能
  • 03アンチエイリアス検出と、無視する矩形領域の指定
  • 04バッチ比較向けの常駐サーバーモードを備えたNode.js API
  • 05SSE2、AVX2、AVX512、NEON向けのSIMD最適化

ユースケース

  • CIパイプラインでのWebページのビジュアルリグレッションテスト
  • PlaywrightまたはCypressのスクリーンショットとベースラインの比較
  • アプリケーションのビルド間で意図しないUI変更を検出
  • Node.jsスクリプトから大量の画像を一括比較

トピック

よくある質問

odiff とは?
Zig製の高速なSIMD最適化画像比較ツール。CLIとNode.js APIを備えています。 odiffは2枚の画像をピクセル単位で比較し、変更箇所を強調した差分画像を生成します。ビルドごとのスクリーンショットをベースラインと照合するビジュアルリグレッションテストを主な用途としていますが、写真やAI生成画像など、似た画像の比較にも使えます。
odiff は無料で使えますか?ライセンスは?
odiff は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
odiff は今もメンテナンスされていますか?
活発にメンテナンス中。odiff の最終コミットは 2026年10月13日 です。
odiff は何に使えますか?
CIパイプラインでのWebページのビジュアルリグレッションテスト PlaywrightまたはCypressのスクリーンショットとベースラインの比較 アプリケーションのビルド間で意図しないUI変更を検出 Node.jsスクリプトから大量の画像を一括比較
odiff はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/dmtrKovalenko/odiff

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト