ファイル名が異なる2つの画像ファイルを比較する方法はありますか?だから私はそれらがjavascriptと等しいかどうかを確認しようとしています。これは可能ですか?
これの使用法:ライトボックスにポップアップする必要のある画像のギャラリーがあります。ライトボックスが開いたら、コールバックにフックして重複画像を確認し、見つかったらライトボックスギャラリーから削除して、ユーザーに繰り返し画像が表示されないようにします。
ファイル名が異なる2つの画像ファイルを比較する方法はありますか?だから私はそれらがjavascriptと等しいかどうかを確認しようとしています。これは可能ですか?
これの使用法:ライトボックスにポップアップする必要のある画像のギャラリーがあります。ライトボックスが開いたら、コールバックにフックして重複画像を確認し、見つかったらライトボックスギャラリーから削除して、ユーザーに繰り返し画像が表示されないようにします。
私はあなたができると思います。擬似コード:
- 画像の幅と高さが同じかどうかを確認します。そうでない場合、それらを同じにすることはできません。
- 両方の画像を並べて表示するキャンバスを作成します。
- キャンバスに画像を描画します。
- それらをピクセルごとに比較します。これは、HTML CanvasのgetPixelから借用したコードを使用して、かなり簡単に実行できます か?
- 1つのピクセルが一致しなくなったら、すぐにループから抜け出すことを忘れないでください。
- 最悪の場合の実行時間はO(wh)になります。これは、イメージが実際に等しいときに発生します。
タイラーは正しいです。ユーザーの同意なしにファイルシステムにアクセスすることはできません。
ただし、URLやアップロードフィールドを使用するなどして、JavaScriptコードで使用できる画像を比較する場合は、次のSOの質問を確認する必要があります。JavaScriptで2つの画像を比較する
基本的に、画像をcanvas
要素に変換し、そのbase64
値を使用して2つを比較します。これは、ドキュメントのチェックサムをチェックしてドキュメントが「有効」かどうかを確認するのと同じ方法です。