JS製の画像差分比較ライブラリ
見つけ次第、追記していく予定です。
resemblejs
https://www.npmjs.com/package/resemblejs
ブラウザ上とNode.js上で実行が可能。ただし、Node.js上で実行するために、node-canvas(https://www.npmjs.com/package/canvas)が必要になる。オプション(optionalDeps)なのでインストール時は --no-optional
(npm) のフラグをつけること。
このnode-canvas(https://www.npmjs.com/package/canvas)は、実行環境にcairo(https://www.cairographics.org/)が導入済みである必要がある。詳細はリポジトリのREADME.mdに書いてあるので、使う際は予め目を通しておくこと。
Node.jsで実行する際にcairoが必要になる点が玉に瑕か。。実行するマシンにインストールしてしまえば良いだけだが面倒なことに変わりはない。
node-resemble-js
https://www.npmjs.com/package/node-resemble-js
前述したresemblejsをフォークしたライブラリ。
Node.js上で実行するにあたって、node-canvas
に依存しない作りになっている。つまり、実行環境にcairo(https://www.cairographics.org/)が導入されていなくても良い。
これはpngjs(https://www.npmjs.com/package/pngjs)とjpeg-js(https://www.npmjs.com/package/jpeg-js) を用いている。
しばらくメンテナンスがされていないのが気になる。
blink-diff
https://www.npmjs.com/package/blink-diff
JSだけでなくコマンドも提供されており、CLIで実行できる。
Yahoo!が開発したライブラリ。リポジトリを見る限りアーカイブされており、メンテナンスはされないのかな。。。
pngjs-image(https://www.npmjs.com/package/pngjs-image)を用いているが、これはpngjs(https://www.npmjs.com/package/pngjs)が依存関係にある。
将来的にメンテナンスされていくのかは不明だが、望み薄かな。
pixelmatch
https://www.npmjs.com/package/resemblejs
ブラウザ上、Node.js上で動作する。環境依存しないシンプルなAPIが特徴。Mapboxが開発しているライブラリ。
pngjs(https://www.npmjs.com/package/pngjs)が依存関係にある。
個人的に環境依存しない点やAPIがわかりやすい点は好印象。
matches-subimage
https://www.npmjs.com/package/matches-subimage
pixelmatchの後発ライブラリ。軽量でzero-dependenciesでシンプル。
zero-dependenciesではあるが、Node.js上での画像の取り扱いは他のパッケージでも利用されているようにpngjs(https://www.npmjs.com/package/pngjs)を使う感じにはなると思う。
Jimp
https://www.npmjs.com/package/jimp
このライブラリは画像差分に特化したものではなく、回転、リサイズなどの画像処理ができる。
画像差分時の細かいオプションはないものの、扱いやすい。