Hey Leute,
habe eben mal meine alten Script ausgekramt und mein altes Gallery Script gefunden.
Jedoch ist mir aufgefallen, dass dies alles andere als performant ist.
Als Beispiel:
Ich habe knapp 260 Fotos von der Loveparade in den Ordner hinein geknallt und mein 2gHz Dual Core bekommt 100% CPU-Auslastung.
Mein Anliegen nun: Wir bekomme ich das Skript performant... ich hab keine Ahnung ich hab zwar überlegt mit Caching der einzelnen Thumbs.. . aber hm.. gewusst wie?!
Hier einmal die picz.php die ich über die Navi include:
Und hier einmal die create_pic.php:
Wäre nett wenn mir einige Helfen könnten.
Nicht wundern, das Script is mit Hilfen aus diesem Forum entstanden
habe eben mal meine alten Script ausgekramt und mein altes Gallery Script gefunden.
Jedoch ist mir aufgefallen, dass dies alles andere als performant ist.
Als Beispiel:
Ich habe knapp 260 Fotos von der Loveparade in den Ordner hinein geknallt und mein 2gHz Dual Core bekommt 100% CPU-Auslastung.
Mein Anliegen nun: Wir bekomme ich das Skript performant... ich hab keine Ahnung ich hab zwar überlegt mit Caching der einzelnen Thumbs.. . aber hm.. gewusst wie?!
Hier einmal die picz.php die ich über die Navi include:
PHP:
<table width="100%" border=0>
<tr>
<td id="ueberschiftcontent" colspan="6">Bilder (Seite <?php echo $_GET['seite']+1; ?>)</td>
</tr>
</table>
<?php
$pfad = "images\gallery";
$spalten = 3;
$zeilen = 3;
$handle = opendir($pfad);
for($max = 0; $bild = readdir($handle); $max++);
$max+=100;
echo "<div align=\"center\">";
echo "<table cellspacing=\"10\" cellpadding=\"5\">";
for($n = 0; $n<$zeilen; $n++){
echo "<tr>";
for($i = 0; $i<$spalten&&($n*$spalten+$i+$_GET['seite']*$spalten*$zeilen)<$max; $i++)
echo "<td id=\"pic\"><a href=\"inc/create_pic.php?id=".($n*$spalten+$i+$_GET['seite']*$spalten*$zeilen)."\"><img src=\"inc/create_pic.php?id=".($n*$spalten+$i+$_GET['seite']*$spalten*$zeilen)."&thumb\" border=\"0\" /></a></td>";
echo "</tr>";
}
echo"</table>";
$getvars = '?'; foreach($_GET as $key => $value) if($key!="seite") $getvars.=$key.'='.$value.'&';
echo "<table cellspacing=\"10\" cellpadding=\"5\">";
echo "<tr colspan=\"2\">";
if($spalten*$zeilen<$max){
echo "<td colspan=\"".($spalten-2)."\">";
if($_GET['seite']>0) echo "<a href=\"".$_SERVER['PHP_SELF'].$getvars."seite=".($_GET['seite']-1)."\">« Vorherige Seite</a> ";
echo "</td><td>";
if(($_GET['seite']+1)*$spalten*$zeilen<$max) echo "<a href=\"".$_SERVER['PHP_SELF'].$getvars."seite=".($_GET['seite']+1)."\">Nächste Seite »</a>";
echo "</td>";
}
echo "</tr></table></div>";
?>
Und hier einmal die create_pic.php:
PHP:
<?php
$pfad = "../images/gallery/Blabla";
$breite_neu = 100;
$handle = opendir($pfad);
for($i = 0; $i <= $_GET['id']+2 && $bild = readdir($handle); $i++);
@list($breite, $hoehe, $format) = getimagesize($pfad.'/'.$bild) or die("ID ungütig");
if(!isset($_GET['thumb'])){
header("Location: ".$pfad.'/'.$bild);
exit;
}
switch($format){
case 1:
$quellbild = imagecreatefromgif($pfad.'/'.$bild);
break;
case 2:
$quellbild = imagecreatefromjpeg($pfad.'/'.$bild);
break;
case 3:
$quellbild = imagecreatefrompng($pfad.'/'.$bild);
}
$skalierungsfaktor = $breite/$breite_neu;
$hoehe_neu = $hoehe/$skalierungsfaktor;
$zielbild = imagecreatetruecolor($breite_neu,$hoehe_neu);
imagecopyresampled($zielbild,$quellbild,0,0,0,0,$breite_neu,$hoehe_neu,$breite,$hoehe);
header("Content-type: image/jpeg");
imagejpeg($zielbild, '', 100);
imagedestroy($zielbild); imagedestroy($quellbild);
closedir($handle);
?>
Wäre nett wenn mir einige Helfen könnten.
Nicht wundern, das Script is mit Hilfen aus diesem Forum entstanden