0

キャンバス ペイント アート ジェネレーターのようなアプリを作成しています。詳細は重要ではありません。重要なのは、同じ画像が 2 回保存されないようにすることです。

同じ画像が複数回生成されても問題ありませんが、保存する前に、現在までのすべての画像で同一のコピーを確認する必要があります。最終的には、これらの画像が数千、場合によっては数百万になるので、未加工のファイルを保存して、すべての画像をアクティブなファイルと照合するのは非常に不合理です。画像ファイルを一意のキーまたは文字列に縮小する方法はありますか?

ある種の SHA 変換を検討しました。ログに記録されたハッシュのテーブルに対して画像のハッシュを確認するのは非常に簡単ですが、トピックに関する情報が不足しており、SHA には重複の可能性がわずかにあります。どんな助けでも大歓迎です-ありがとう!

4

1 に答える 1

1

hash_file 関数を使用してこれを実行できる場合があります。(これは pecl 拡張機能です)

$hash = hash_file("sha256", $filename);

基本的に、ハッシュとの衝突は可能ですが、ほとんどありません。それらをさらに防ぐために、ファイルのサイズなどの追加の属性をハッシュに追加できます。

$hash = hash_file("sha256", $filename)."-".filesize($filename);

現在、衝突は、同じハッシュを生成するまったく同じサイズの 2 つのファイルでのみ可能です。

于 2013-07-02T21:01:32.763 に答える