Bilder vergleichen
Bilder vergleichen
Hallo,
ich wollte mir ein Programm schreiben, daß meine Urlaubsfotos verwaltet. Die Digitalkamera nennt die Bilder immer gleich, wenn ich sie von der Kamera lösche. Ich ahbe mir 2 Ordner gemacht ein neu ein fertig. Ich lese das Verzeichnis neu ein und benenne dann die Bidler um und kopiere Sie in den fertig Ordner. Ich möchte sehr gerne vermeiden, daß dort Doppelte Bilder erstellt werden. Kann man irgendwie prüfen,ob das Bild schon vorhanden ist? Nicht den Namen des Bildes sondern quasi den Inhalt.
			
			
									
						
										
						ich wollte mir ein Programm schreiben, daß meine Urlaubsfotos verwaltet. Die Digitalkamera nennt die Bilder immer gleich, wenn ich sie von der Kamera lösche. Ich ahbe mir 2 Ordner gemacht ein neu ein fertig. Ich lese das Verzeichnis neu ein und benenne dann die Bidler um und kopiere Sie in den fertig Ordner. Ich möchte sehr gerne vermeiden, daß dort Doppelte Bilder erstellt werden. Kann man irgendwie prüfen,ob das Bild schon vorhanden ist? Nicht den Namen des Bildes sondern quasi den Inhalt.
Re: Bilder vergleichen
Ich nehme mal an, du meinst einen Vergleich auf exakt dasselbe Bild? Da du nix zur Programmiersprache geschrieben hast, hier die Lösung auf der Shell:zakmc wrote:Kann man irgendwie prüfen,ob das Bild schon vorhanden ist? Nicht den Namen des Bildes sondern quasi den Inhalt.
Code: Select all
diff DATEINAME1 DATEINAME2Re: Bilder vergleichen
wollte das eigentlich mit php machen aber shell geht genauso gut. kann ja einen systemaufruf amchen
thx
			
			
									
						
										
						thx
Re: Bilder vergleichen
Hm, unter php hilft Dir evtl. die Funktion md5_file() weiter... ich glaub die vergleicht nur den Inhalt. Und wenn Du die zwei Hashwerte der zwei Dateien vergleichst und die gleich sind, sind die Bilder auch gleich.
Naja, also probiert hab ich's nicht, musste n bissel mit experimentieren.
			
			
									
						
										
						Naja, also probiert hab ich's nicht, musste n bissel mit experimentieren.
Re: Bilder vergleichen
das werde ich auf jeden fall probieren. thx
wenn das funktioniert wäre das auch noch besser als das erste
			
			
									
						
										
						wenn das funktioniert wäre das auch noch besser als das erste
Re: Bilder vergleichen
habe es hinbekommen
vielen dank euch beiden
			
			
									
						
										
						vielen dank euch beiden
Re: Bilder vergleichen
Fürs Archiv wäre dein Codeschnipsel nicht schlecht  8)
			
			
									
						
										
						Re: Bilder vergleichen
kein Problem. habe Kommentare eingefügt und hoffe das es daruch verständlich wird, ansonsten einfach hier posten oder ne pm
			
			
									
						
										
						Code: Select all
    include_once("function/mydb_connect.php");  //PHP Function um die Verbindung zur DB herzustellen
    $connid=connect_to_mydb();  //DB Verbindung aufbauen
    $read_dir="neu";  //Name des einzulesenden Verzeichnisses
    $write_dir="bilder";  //Name des Verzeichnis wo das Bild gespeichert werden soll
    $fp_v=opendir($read_dir);  //Ã?ffnen eines Verzeichnis, gibt Verzeichnis-Handler zurück
    while($datei=readdir($fp_v)) {  //Gesamtinhalt des Verzeichnisses einlesen
      if(is_dir("$read_dir/$datei"))  //prüfen, ob es sich um ein Verzeichnis, parent directory oder upper directory handelt
        continue;  //sprung zum while
      $fp_r=fopen("$read_dir/$datei","r");  //Bild zum lesen öffnen
      $string=fread($fp_r,filesize("$read_dir/$datei"));  //Bild einlesen
      fclose($fp_r);  //Offne Datei schließen
      $hash=md5($string);  //Hashwert des String ermitteln
      if(mysql_num_rows(mysql_query("SELECT bildid FROM bild WHERE hash='$hash'"))>0)  //prüfen, ob hash schon in DB
        continue;  //sprung zum while
      mysql_query("INSERT INTO bild SET hash='$hash'");  //Hashwert in DB speichern
      $imgname=mysql_insert_id().".jpg";  //neuen Namen für das Bild erstellen, damit der Name eindeutig wird
      $fp_w=fopen("$write_dir/$imgname","w");  //Datei zum schreiben öffnen
      fwrite($fp_w,$string);  //Bild schreiben
      fclose($fp_w);  //Datei schließen
      unlink("$read_dir/$datei");  //Bild löschen
    }
    closedir($fp_v);  //Verzeichnis schließen
Re: Bilder vergleichen
falls deine DigiCam Exif unterstützt, würde ich nur diese Header vergleichen - könnte ein bißchen schneller sein..
			
			
									
						
										
						Re: Bilder vergleichen
Mmmhhhh also im Handbuch steht nichts davon ..
was istd as denn überhaupt?
			
			
									
						
										
						was istd as denn überhaupt?
Re: Bilder vergleichen
Das werde ich heute oder morgen Abend gleich mal ausprobieren. 
THX
			
			
									
						
										
						THX