Gallerie Script

narZist

Grünschnabel
hi zusammen

Ich bin dabei eine kleine Gallerie zu coden und komme nicht mehr weiter bzw. kann mein Scirpt nicht mehr erweitern..
Das Ziel ist, dass das Script die Bilder aus einem Ordner liest Thumbnails generiert und diese mit dem richtigen Link verknüpft..

Die Bilder aus einem Ordner auszulesen und wiederzugeben habe ich geschafft, jedoch bringe ich es nicht fertig, sie als einheitliche Thumbnails mit verlinkung zu machen.. :(

kann mir wer echt helfen? wäre toll :)


hier noch mein bisheriger code

Code:
<?php

$bild_pfad ="images"; 

$oeffne_pfad=opendir($bild_pfad); 

$PicCODE= 1;

while ($find = readdir($oeffne_pfad)) 
{
    if (preg_match("/.(jpg|gif|png)$/i", $find))
    {
    $bild[$PicCODE] = "$bild_pfad/$find";
    $PicCODE++;
        if ( ++$piccount % 5 == 0 )
        {
        $hidden = $find;
        }

    }

}
$datei=$PHP_SELF;

$max= $piccount;

if (!isset($s)) { $s=1; }
$zurück = $s-1;

if ($zurück<=0) { $zurück=1; } /

$vor = $s+1; 

if ($vor>=$max) { $vor=$max; }

echo "<div align=center>";

echo "<img src=$bild[$s] border=1><br><br>n"; 

echo "<a href='$datei?s=$zurück'>[Zurück zu Bild $zurück] </a>"; 

echo " Bild: $s ";
$gallery_size = sizeof($bild);
                        
if ($s<$gallery_size) {
    
if ($vor == $max) {

echo "<a href='$datei?s=$vor'> [Weiter zum letzten Bild]</a>";

}

else {
            
echo "<a href='$datei?s=$vor'> [Weiter zu Bild $vor]</a><br>"; 

                }

                }        

            echo "</div>";
?>
 
Die Miniaturbilder der Originalbilder dynamisch bei jedem Aufruf des Skriptes zu generieren, wäre absolut ineffizient. Daher sollten die Miniaturbilder bereits vorher angelegt und separat gespeichert werden. Die nötigen Funktionen und einige Anwendungsbeispiele sind im Kapitel der Grafik-Funktionen zu finden.
 
Die Ineffizienz liegt darin, dass PHP nicht gerade primär zum Verarbeiten von Grafiken gedacht ist und daher keine akzeptable Leistung in diesem Gebiet hat. Würden hier nun die Bilder bei jedem Aufruf erst erzeugt, wäre das eine überflüssige und vor allem vermeidbare Belastung des Webservers – und der Nerven des Benutzers, denn das kostet Zeit.
 
Die Grafik müsste zwar nicht physisch in Form einer Grafikdatei, dafür aber zumindest virtuell als Datensequenz erzeugt werden.
 
Die Verkleinerung der Grafiken kann ruhig von PHP übernommen werden, allerdings sollte diese nur einmal stattfinden und nicht bei jedem Aufruf der Galerie.

Du könntest beispielsweise beim Aufruf der Galerie prüfen, ob eine Miniaturversion der Originalgrafik existert und entsprechend darauf reagieren, sodass nur nicht-vorhandene Miniaturgrafiken als Grafikdateien erzeugt werden.
 
da weiss ich leider nicht wie ich das anstelle soll?
kannst mir helfen? oder sagen was ich wo in mein code einbinden muss?
 
Folgendes wäre möglich (vereinfacht):
PHP:
<?php

	$imageDir = 'images';
	$thumbDir = 'thumbs';

	$images = array();
	$handle = opendir($imageDir);
	while( $file = readdir($oeffne_pfad) ) {
		if( !preg_match('/\.(jpg|gif|png)$/i', $file) ) {
			continue;
		}
		$images[] = $file;
	}

	foreach( $images as $image ) {
		if( !file_exists($thumbDir.'/'.$image) ) {
			createThumbnail(…);
		}
		echo '<a href="' . $imageDir.'/'.$image . '"><img src="' . $thumbDir.'/'.$image . '"></a>';
	}

?>
Die createThumbnail()-Funktion ist in diesem Fall allerdings nur eine Dummy-Funktion und müsste noch definiert werden.
 
Zurück