wake-up-neo.net

Vergleichen Sie 2 Bilder in PHP

Wenn Sie zwei Bilder vergleichen, um zu sehen, ob es sich bei beiden um dieselben Dateien handelt, ist es einfach, die Dateien MD5 zu werfen. Ist es jedoch möglich oder sogar plausibel, festzustellen, ob 2 Bilder gleich sind, verwenden Sie PHP Gd, um den Unterschied der beiden Bilder zu ermitteln . Wenn wir den Unterschied zwischen den beiden finden und alles weiß ist (ich nehme Weiß oder sogar Schwarz an), würden wir jetzt wissen, dass es sich um dasselbe Foto handelt.

Anmerkung: Ich möchte gerne wissen, ob es möglich ist, zwei gleich große Bilder zu erzeugen, um einen Zwiebelschaleneffekt zu erzeugen, 50% Transparenz auf 1 und 50% auf der anderen Seite.

25
Joseph

ImageMagick bietet verschiedene Tools, die Sie dazu mit der ImageMagick-Erweiterung PHP verwenden können.

http://www.php.net/manual/de/function.imagick-compareimages.php

Das größte Problem ist, dass die Dokumentation für diese Bibliothek so gut wie nicht vorhanden ist, so dass eine ganze Reihe von Versuchen und Fehlern erforderlich ist.

17
kander
$md5image1 = md5(file_get_contents($image1));
$md5image2 = md5(file_get_contents($image2));
if ($md5image1 == $md5image2) {

}
13
Hamada Mido

libpuzzle ist eine PHP - Erweiterung, die Bilder vergleichen kann.

9
pfrenssen

Eine ähnliche Frage wurde zu diesem Stackoverflow-Thread gestellt, und ich hatte etwas für meinen eigenen Gebrauch entwickelt. Poste es hier, damit es anderen helfen kann.

Es dauert zwei (oder mehr Bilder) und gibt Ihnen Optionen zum Überprüfen des Unterschieds zwischen ihnen. Optionen wie Auflösung und Strenge.

Ich habe auch einen ausführlicheren Blogpost geschrieben.

3
Pat Cullen

Bildvergleichsfunktion in PHP mit Gd Library http://www.robert-lerner.com/imagecompare.php

3
TechNikh

Ich musste einen Satz JPEG-Bilder deduplizieren, bei dem der Unterschied zwischen zwei identischen Bildern Pixel für Pixel bestand:

  • verschiedene Metadaten, z. Bilder hatten unterschiedliche IFD0: ModifyDate
  • verschiedene binäre Daten, z. Bilder wurden durch verschiedene Software verlustfrei komprimiert

Die Lösung, die ich verwendete, war wie folgt:

  • Öffnen Sie das Bild mit der Funktion createimagefromjpeg
  • speichern Sie das Bild im Gd2-Format mit imagegd2
  • vergleichen Sie die Gd2-Versionen mithilfe von Hash-Vergleich oder String-Vergleich
0
Salman A

Sie sind sich nicht sicher, ob es so einfach ist und eine Lösung vorhanden ist, aber Sie erhalten möglicherweise eine Vorstellung von der Bilderkennung:

Gesichtserkennung mit PHP
Bildnacktheitsfilter (Klasse)

0
Sarfraz

Wenn Sie nur zwei Dateien vergleichen, ist das Hashing von Daten und der Vergleich die perfekte Lösung. Wenn Sie eine große Anzahl von Dateien vergleichen, sortieren Sie sie zuerst anhand der Größe und vergleichen Sie sie nur mit derselben Größe.

0
mrd081