Doppelte Bilder VOR dem erstellenvermeiden.

Thomas_Jung

Erfahrenes Mitglied
Hallo
Ich erstelle ein Bild indem ich es von einer MP3-Datei exportiere.
Nun möchte ich wenn in 100 MP3-Dateien das gleiche Bild vorhanden ist, nicht 100 Bilder erstellen.
Ich könnte mit filesize die Dateigröße ermitteln und die doppelt erstellten Bilder wieder löschen. :)
Macht aber keinen Sinn. (Serverauslastung)

Ich kann ja die Bildgrösse erst auslesen wenn das Bild erstellt worden ist. Oder?

Habt ihr eine Idee wie ich das lösen kann?



PHP:
if ($getID3->info['comments']['picture'][0]['image_mime'] == 'image/jpeg')	$image = $dir . $f->getFileName() . '.jpg';
if (file_put_contents($image, $getID3->info['comments']['picture'][0]['data']) === false)
die ("Error" . " File: " . __FILE__ . " on line: " . __LINE__ ."<br>". $image);
Gruß Thomas
 
Zuletzt bearbeitet von einem Moderator:
Und was ist, wenn das Bild unterschiedlich ist, aber gleich groß?

Für einen Vergleich von zwei Bildern wirst du nicht herum kommen beide zu erstellen und dann zu vergleichen, wobei das Vergleichen von Bildern dann auch wieder nicht trivial ist.
Sobald sich nur ein Bit änder, ist bspw. der MD5 komplett anders.

Du bräuchtest also eine Art Fingerprint für jedes Bild, der für alle unterschiedlichen Bilder anders ist, aber Rückschlüsse auf die Ähnlichkeit ziehen lässt.

Meine Meinung, sofern du die Ähnlichkeit des Bildes nicht aus den Tags der MP3-Datei ableiten kannst, bleibt dir nichts anderes üblich als das Bild zu erstellen und dann zu vergleichen.

Eine simple Methode ist hier beschrieben: http://www.intelliot.com/2008/03/so...ge-resizing-comparison-and-similarity-in-php/

Aber eine richtige Implementierung, die auch Rotation, Scale und Farbunterschiede erkennt ist nicht trivial.
 
Zurück