Max 5 Thumbnails in einer Reihe?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Seki
Mitglied
Beiträge: 11
Registriert: 10.01.2005 15:22

Max 5 Thumbnails in einer Reihe?

Beitrag von Seki »

Hallo, ich benutze folgendes Script, um alle Bilder aus einem Verzeichnis darstellen zu können:

Code: Alles auswählen

<html>
<head>
<title>Title</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>

<?php 
include("http://www.meinserver.de/albumarchiv.php");
error_reporting(0);
  
  
  $handle = opendir("./tnails");
  while (true == ($file = readdir($handle))) 	
  {  						
    if (file_exists("./bilder/".$file) == false)
      unlink("./tnails/".$file);
  }
  
  
  $handle = opendir("./bilder");
  $inhalt = array(); 
  $i = 0;
  while (true == ($file = readdir($handle))) 
  { 
    if (getimagesize("./bilder/".$file) == true)         
    {         
      $i++;
      $inhalt[$i] = $file; 
      if (file_exists("./tnails/".$file) == false)
      {
        if (imagecreatefromgif("./bilder/".$file) == true)
          $im_bild = imagecreatefromgif("./bilder/".$file);
        if (imagecreatefromjpeg("./bilder/".$file) == true)
          $im_bild = imagecreatefromjpeg("./bilder/".$file);
        if (imagecreatefrompng("./bilder/".$file) == true)
          $im_bild = imagecreatefrompng("./bilder/".$file);
                      
        $picinfo = getimagesize("./bilder/".$file);
        $width_orig = $picinfo[0];
        $height_orig = $picinfo[1];
        $width = 124;
        $height = 93;

        if (($width_orig / $height_orig) <= ($width / $height))
        {
          $width = ($height / $height_orig) * $width_orig;
        } 
        else
        {
          $height = ($width / $width_orig) * $height_orig;
        }
  
        $im_tnail = imageCreateTrueColor($width, $height);
        imageCopyResampled($im_tnail, $im_bild, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
               
        $im_fertig = imageCreateTrueColor(124, 107);
        $color = ImageColorAllocate($im_fertig, 1, 86, 126);
        imagefill($im_fertig, 0,0, $color);
                
        $dst_x = (124 - $width) / 2;
        $dst_y = (93 - $height) / 2;
        ImageCopy($im_fertig, $im_tnail, $dst_x, $dst_y, 0, 0, $width, $height);
        $color = ImageColorAllocate($im_fertig, 1, 86, 126);
        imagerectangle($im_fertig, 0, 0, 123, 92, $color);
        
        $color = ImageColorAllocate($im_fertig, 1, 86, 126);
        imagestring($im_fertig, 1, 0, 95, $file, $color);
        
        imagejpeg($im_fertig, "./tnails/".$file);
      }
    }     
  }
  

  $nl = chr(13) . chr(10);
  $fp = fopen("liste.txt","w");
  echo "<center>";
  for($zaehler = 1; $zaehler <= $i; $zaehler++)
  {
    echo "<a href=\"detail.php?bild_id=".$zaehler."\"><img src=\"tnails/".$inhalt[$zaehler]."\" border=\"0\"></a>&nbsp;&nbsp;";
    fputs ($fp, "|".$zaehler."| ".$inhalt[$zaehler].$nl);
  }
  fclose($fp);


//  echo "<br><br><form method=\"post\" action=\"upload.php\" enctype=\"multipart/form-data\">";
//    echo "<input type=\"file\" name=\"local\" size=\"25\" style=\"height: 22px;\">&nbsp;";
//    echo "<input type=\"submit\" name=\"subscribe\" value=\"Bild hochladen\" style=\"height: 22px;\">";
  echo "</form>";
  echo "</center>";


?>
</body>
</html>
Nun wird der komplette browser genutzt um die thumbnails darzustellen. Ich möchte aber, dass max 5 oder 6 thumbnails in eine Reihe kommen. Da ich in PHP nicht so bewandert bin, frage ich nun hier, wo und wie ich den code ändern kann.

Vielen Dank schon mal
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

KB:knigge
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Wobei ich letzteren Link eher unübersichtlich und an dem Punkt:

Code: Alles auswählen

if($endung == "bmp" OR $endung == "jpg" OR $endung == "gif" OR $endung == "pre")
Umständlich finde....in_array() wäre denke ich besser......mal abgesehen davon das ein xor sinniger als ein or ist.....

Wohl wieder ein Beispiel für wie man nach 2000 Zeilen Code absolut selber als auch andere nicht mehr durchblicken werden können
Antworten

Zurück zu „Coding & Technik“