Bir görüntü PHP kullanarak benzersiz olup olmadığını kontrol etmek için iyi bir yolu nedir?

5 Cevap php

Bir görüntü PHP kullanarak benzersiz olup olmadığını kontrol etmek için en iyi yolu nedir? Ben yaklaşık 30 görüntü (yaklaşık 500 * 500 piksel) bir dizin var ve birileri başka bir resim yükler demek, yüklenen görüntü dizinde henüz olup olmadığını denetlemek için iyi bir yolu nedir?

Hash en kolay karşılaştırılabilir görüntüleri oluşturmak için yol çeşit var mı? Ben daha sonra dizinde karma adlı görüntüleri kaydetmek ve yüklenen görüntü karma için bu karşılaştırabilirsiniz.

Işlem gücü çok bir sorun değil, o dakikada bir birkaç resim daha sonra idare edebilmek zorunda değildir. Ne de bir piksel fark ile görüntüleri farklı görüntüler olarak görülecektir ki gerçektir. Sistem sadece excactly aynı görüntüleri filtre gerekir.

5 Cevap

O bir eşleşirse run a checksum on the file .. Zaten sonra onun muhtemelen aynı tam görüntü var.

Dosyaların Byte-bilge karşılaştırma bir ID3 etiketi gibi küçük bir ayrıntı değişti bile başarısız olur. Resim içeriğini karşılaştırmak için, görüntü dosyasını açın ve gerçek görüntü piksel veri hash oluşturmak olurdu. Ince kodlama farklılıkları piksel renk değerlerindeki değişiklikler yaratacak - Ama o bile biraz daha farklı bir kalite düzeyi ile iki kez, diyelim ki, bir JPEG dosyası kaydederek geri alınabilir.

Eğer gerçekten contents biçimleri ve nitelikleri genelinde resmi maç arıyorsanız Yani, solucanlar büyük bir kutu açıyor :)

Hızlı cevap, ama ben bu yaklaşımı öneriyoruz:

  • (Bunun için PHP bir fonksiyonu var) görüntüleri karma için md5sum kullanın.
  • Eğer bir veritabanı kullanıyorsanız, md5sum bir resim dosyaları bir tablo sütun, ve bu alana göre dizin tablo olmak var.
  • Aksi takdirde, bu gibi düz bir dosya sağlamalarının tutmak:

    68b329da9893e34099c7d8ad5cb9c940 file2.bmp
    da1e100dc9e7bebb810985e37875de38 file1.jpg