Thumbnails

louna

Grünschnabel
Hallo,
Ich hätte da mal ne Frage, und zwar wird beim auslesen des Ordners der Ordner darin sowie andere Dateien als Bild ausgegeben was natürlich nicht sein sollte auch würde ich gerne die Höhe der Thumbnails anpassen können.Könnte bitte mal jemand drüberschauen. Danke schon mal im voraus und Sorry für die Anfängerfragen.

mfg
Louna

Ausgegebene Fehler
PHP:
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/var/www/web1/html/lounge/file/pic/gallery/IpsThumb.db' is not a valid JPEG file in /var/www/web1/html/slide/index.php on line 113

Warning: Division by zero in /var/www/web1/html/slide/index.php on line 115

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /var/www/web1/html/slide/index.php on line 116

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/web1/html/slide/index.php on line 117

Warning: imagejpeg(): supplied argument is not a valid Image resource in /var/www/web1/html/slide/index.php on line 118

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/var/www/web1/html/lounge/file/pic/gallery/thumb' is not a valid JPEG file in /var/www/web1/html/slide/index.php on line 113

Warning: getimagesize() [function.getimagesize]: Read error! in /var/www/web1/html/slide/index.php on line 114

Warning: Division by zero in /var/www/web1/html/slide/index.php on line 115

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /var/www/web1/html/slide/index.php on line 116

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/web1/html/slide/index.php on line 117

Warning: imagejpeg(): supplied argument is not a valid Image resource in /var/www/web1/html/slide/index.php on line 118

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/var/www/web1/html/lounge/file/pic/gallery/index.html' is not a valid JPEG file in /var/www/web1/html/slide/index.php on line 113

Warning: getimagesize() [function.getimagesize]: Read error! in /var/www/web1/html/slide/index.php on line 114

Warning: Division by zero in /var/www/web1/html/slide/index.php on line 115

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /var/www/web1/html/slide/index.php on line 116

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/web1/html/slide/index.php on line 117

Warning: imagejpeg(): supplied argument is not a valid Image resource in /var/www/web1/html/slide/index.php on line 118

Notice: Undefined variable: content in /var/www/web1/html/slide/index.php on line 94

Das Script
PHP:
<?php
/* ====== Allgemeine Einstellungen ====== */

# Pfad zu den Bildern
$imagePath = $_SERVER['DOCUMENT_ROOT'].'/slide/img/';

# Verzeichniss für die Thumbnails
$thumbDir = 'thumbs/';

# Realtiver Pfad zu den Bildern von diesem Script aus
$imageRelPath = '/slide/img/';

# Breite der Thumbnails
$breite = 120;

# Qualität der Thumbnails
$quality = 85;

# Beim nächsten Durchlauf die Thumbs neu erstellen
$createNew = 0;

/* ====== Allgemeine Einstellungen ====== */

# Kompletter Thumb Pfad bauen
$thumbPath = $imagePath . $thumbDir;

# Prüfen ob Thumb Verzeichniss existiert. Wenn nicht, anlegen!
if(!is_dir($thumbPath)) {
	mkdir($thumbPath, 0755);
}

# Bilderverzeichniss öffnen
$handle=opendir($imagePath);

# und Schleife für jeden Eintrag im Verzeichniss durchlaufen
while ($file = readdir($handle))
{
	# Das Thumb Verzeichniss sowie . und .. rausfiltern
	if ($file != "." && $file != ".." && $file != str_replace('/','',$thumbDir)) {

			# Alle Dateien in ein Array speichern
			$imageArr[] = $file;
	}
}

# Die Funktion zum erstellen von Thumbnails aufrufen
createThumb($imageArr);

# Danach jedes Bild in einer Schleife mit Link zum grossen Bild ausgeben
foreach($imageArr as $fileName) {
	$content.='<a href="' . $imageRelPath . $fileName . '"rel="myLightbox.start"><img src="' . $imageRelPath . $thumbDir . $fileName . '"></a>';
}

# Ausgabe des HTML Codes
echo $content;

# Die funktion zum erstellen von Thumbnails
function createThumb($imageArr) {

	# Variablen in dieser Funktion
	global $imagePath, $thumbPath, $breite, $quality, $createNew;

	# Schleife mit dem Array der Bilder durchlaufen
	foreach($imageArr as $image) {

		$fileExists = file_exists($thumbPath.$image);
		# Wenn das noch nicht existiert oder die Variable $createNew gesetzt ist wird das thumbnail erstellt
		if($createNew != 0 || $fileExists != true ) {
			$completePath = $imagePath.$image;
			$src = imagecreatefromjpeg($completePath);
			list($width,$height)=getimagesize($completePath);
			$newheight=($height/$width)*$breite;
			$tmp=imagecreatetruecolor($breite,$newheight);
			imagecopyresampled($tmp,$src,0,0,0,0,$breite,$newheight,$width,$height);
			imagejpeg($tmp,$thumbPath.$image,$quality);
		}
	}
}



?>
 
Lies mit readdir() Dein Verzeichnis aus und prüfe einfach mit getimagesize() ob es sich um ein gültiges Bildformat handelt.

Zur Höhe der Thumbnails musst du halt die neue Breite berechnen:
PHP:
$neueBreite = $breite*$sollHoehe/$hoehe;
 
Zurück