[REQ] Thumbnail Gallerie

mailme

Erfahrenes Mitglied
Suche nen Skript das alle Dateien (*.jpeg *.jpg *.gif) aus einem Ordner ausliest und Thumbnails erstellt.

- Die Verlinkung sollte so aussehen http://www.bla.de/pics.php?folder=PFAD1
- Müssen keine neue Bilddaten erstellt werden reicht wenn Größe verändert wird.
- Durch anklicken der entsprechenden Thumbs sollte man zu den Bild kommen.
- Optional: "Zurück" und "Vor" Funktionen wären nicht schlecht.

Habe immer das Problem das entsprechende Skripts / Codegeschnipsel nie alle Dateien eines Ordner ausliesen, sondern nur eingegeben Dateien.
Sorry bekomm das irgenwie net hin :(

Thx Gruss mailme
 
hab ich schon alles durch :)
PHP:
<?php
   function createThumb($img_src, $img_width , $img_height, $des_src) {
      $im = imagecreatefromjpeg($img_src);
      list($src_width, $src_height) = getimagesize($img_src);
      if($src_width >= $src_height) {
         $new_image_width = $img_width;
         $new_image_height = $src_height * $img_width / $src_width;
      }
      if($src_width < $src_height) {
         $new_image_height = $img_width;
         $new_image_width = $src_width * $img_height / $src_height;
      }
      $new_image = imagecreatetruecolor($new_image_width, $new_image_height);
      imagecopyresampled($new_image, $im, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
      imagejpeg($new_image, $des_src. "/" .$img_src, 100);
   }
  
   $file    = "bild.jpg";
   $groesse = "100";

   createThumb($file, $groesse, $groesse, "thumbnails");

   echo "<a href=".$file." target=_blank><img src=thumbnails/".$file." border=0></a>";

?>
Suche sowas in der Art nur dass statt $file eben nen Ordner ausgelesen wird. Also GD kann schon mir drin sein :)

PHP:
<?PHP
if (!$fp = @opendir($folder)) {
    echo("Fehler: Bitte Webmaster melden. 
Danke.\n");
} else {
	while ($file = readdir($fp))
	{
		$name[] = $file;
	}

	@closedir($fp);
	sort ($name);
	$count = 0;

	for ($i = 0; $i < sizeof($name); $i++) 
	{
		if ($name[$i] != "." && $name[$i] != "..") {
			$ext = array_reverse(explode(".", $name[$i]));
			if ($ext[0] == "jpg" || $ext[0] == "JPG" || $ext[0] == "jpeg" || $ext[0] == "JPEG" || $ext[0] == "png" || $ext[0] == "PNG" || $ext[0] == "gif" || $ext[0] == "GIF" || $ext[0] == "bmp" || $ext[0] == "BMP")
			{
				echo "<br><img src=\"$folder/$name[$i]\" align=''><br><br>
\n"; $count++; } } } if ($count == 0) { echo "Fehler: Bitte Webmaster melden. 
Danke.<br>
<br>\n";
	}

}
Vielleicht hilft das weiter. Das liesst eben nur die Bilder aus einem Ordner aus und gibt sie wieder aus. http://www.xxx.de/pics.php?folder=pics/Ordner
Ne Kombi wär echt cool.
 
Zuletzt bearbeitet:
Du versuchst es ja nichtmal!

Du hast den Code zum Auslesen eines Verzeichnisses und den Code zum Erstellen von Thumbnails. Für jede Datei des Verzeichnisses erzeugst Du ein Thumb. Häng Dich rein - von nichts kommt nichts!

snuu
 
User helfen Usern
Klar ich würde auch sicherlich fragen wenn ich mich nich schon ziemlich lange damit rumgeschlagen hätte. Aber hier bekommt man ja anscheinend keine Hilfe auch wenn man seinen guten Willen zeigt.

Vielleicht sind die User in anderen Board hilfebereiter als die sich hier im Thread gemeldet haben.
 
User helfen Usern. Aber nicht: User kauen Unsern alles vor.

Dann zeig' doch mal Deine kombinatorischen Ansätze, die Du wärend des "Rumschlagens" mit der Thematik gefunden hast.

snuu
 
PHP:
<?php 
if (!$fp = @opendir($folder)) { 
    echo("Fehler: Bitte Webmaster melden. 
Danke.\n"); 
} else { 
    while ($file = readdir($fp)) 
    { 
        $name[] = $file; 
    } 

    @closedir($fp); 
}
   function createThumb($img_src, $img_width , $img_height, $des_src) { 
      $im = imagecreatefromjpeg($img_src); 
      list($src_width, $src_height) = getimagesize($img_src); 
      if($src_width >= $src_height) { 
         $new_image_width = $img_width; 
         $new_image_height = $src_height * $img_width / $src_width; 
      } 
      if($src_width < $src_height) { 
         $new_image_height = $img_width; 
         $new_image_width = $src_width * $img_height / $src_height; 
      } 
      $new_image = imagecreatetruecolor($new_image_width, $new_image_height); 
      imagecopyresampled($new_image, $im, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height); 
      imagejpeg($new_image, $des_src. "/" .$img_src, 100); 
   }
   
$groesse = "100"; 

   createThumb($file, $groesse, $groesse, "thumbnails"); 

   echo "<a href=".$name." target=_blank><img src=thumbnails/".$name." border=0></a>"; 

?>

hab keine ahnung wie der echo befehl am ende auszusehen hat.
 
Zuletzt bearbeitet:
1.) In der While-Schleife, die das Verzeichnis ausliest, muss noch geprüft werden, ob es sich auch um eine Datei handelt. Das macht man zum Beispiel mit [phpf]is_file[/phpf].

2.) Ausserdem sollten in der Schleife die immer auftretenden Einträge "." und ".." ignoriert werden.

3.) Die Funktion createThumb() sollte gleich in der While-Schleife aufgerufen werden, da ja für jede gefundene Datei die Funktion ausgeführt werden soll.

4.) Weil die Funktion nur JPEG-Dateien verarbeiten kann, müsste noch geprüft werden, ob es sich auch um eine JPEG-Datei handelt. Trivial Möglichkeit: prüfen, ob die letzten 3 bzw. 4 Zeichen des Dateinamens "jpg" bzw. "jpeg" lauten. --> [phpf]substr[/phpf]

5.) Die verwendete Variable $folder muss noch irgendwo herkommen. Entweder durch hartes Setzen im Script oder durch Parameterübergabe (GET, POST).

6.) Des Weiteren muss die Variable $folder noch der Variable $file vorangestellt werden, wenn diese an die Funktion createThumb() übergeben wird, da sonst das Bild nicht gefunden werden kann.

7.) Die Ausgabe des HTML-Codes zur Bildanzeige muss auch mit in die Schleife integriert werden. Dabei muss die momentan verkettete Variable $name durch die Variable $file ersetzt werden, wobei im Parameter "href" wiederum die Variable $folder vorangestellt werden muss.

Mehr fällt mir erstmal nicht auf. Ist ja auch genug.

snuu
 
Zurück