04. maj 2008 - 16:13Der er
8 kommentarer og 1 løsning
Thumbnails af flere billeder via gdlib
Hej alle,
Er der nogen som kan vise mig et script som via gdlib danner en thumbnail ud fra x antal billeder i en mappe på serveren! Thumbnails skal vises i browseren.
Der skal altså vises en thumbnail for hvert billede i den pågældende mappe.
Jeps - det vil jeg gerne - så kan andre også få glæde af det. Det drejer sig om 2 filer, som jeg smider i hver sin kommentar. Begge filer skal smides i samme mappe som dine billeder. Der udover skal du lave en under-mappe, som du kalder "thumbnails". Denne mappe skal du lave CHMOD 777 på. I filen head.php kan du foretage forskellige ændringer i opsætningen af din thumbnails. Det er bl.a. størrelse, antal stk. på tværs og farver. Filen fotos.php skal du ikke gøre noget med.
<?php //Denne fil skal lægges i samme mappe som billed-filerne. Når filen indlæses genererer den automatisk thumbnails af alle billedfiler. //På FDF-serveren må billedfilerne ikke være større end //Navnet på billed-filen må ikke indeholde mellemrum og skal overholde almindlige regler for filnavne på hjemmesideservere //Husk at ændre skriverettighederne på den mappe filen her ligger i // VARIABLERNE DEFINERES I FILEN "HEAD.PHP" require 'head.php';
### --- PAS PA MED AT RETTET NOGET HERUNDER --- ### if(!is_dir($thumbnail_mappe)) {mkdir("$thumbnail_mappe", 0777);}
function imageresizejpeg($sourcefile,$maxwidth,$maxheight,$destinationfile) { // funktion til resize eaf jpg-filer
### --- PAS PA MED AT RETTET NOGET HERUNDER --- ### $handle=opendir('.'); // GO $piccy=array(); $count=0; // SCAN THE DIR //while (($filename = readdir($handle))!==false) { while ($filename = readdir($handle)) { // TYPER FILER DER KAN HENTES if (eregi("(\.jpg|\.gif|\.bmp|\.png|\.JPG|\.GIF|\.BMP|\.PNG)$", $filename)) { // hvis fil er en billedfil $piccy[$count] = $filename; $count++; } } // LUK DIR closedir($handle); // SORTERE FILERNE sort($piccy); reset($piccy);
// VISER STORT IMAGE if ($_GET['large']){ // hvis large er med som query-string $large = $_GET['large']; echo "<html><head><title>" . $pagetitle ."" . $large . "</title></head><body bgcolor=" . $bg . ">"; echo '<div align="center">'; // HVIS NAVNET ER SAT TIL AT VISES? if ($name=="1") { echo '<br><font face="verdana" color="white" size="1">Billednavn: ' . $large . '</font>'; } // FIND FORRIGE OG NÆSTE $i = 0; $prev = ""; while ( ($piccy[$i] != $large) && ($i < sizeof($piccy)) ) { $prev = $piccy[$i]; $i++; } if ($i == sizeof($piccy)-1) { $next = ""; } else { $next = $piccy[$i+1]; } // VIS FORRIGE OG NÆSTE echo "<br><br>"; //echo "<a href=?large=".$prev.">[< <]</a>"; echo '<button onclick="location.href=\'?large='.$prev .'\';return false;" class="form">[< <]</button>'; echo " "; //echo "<a href=?large=".$next.">[> >]</a>"; echo '<button onclick="location.href=\'?large='.$next .'\';return false;" class="form">[> >]</button>';
// NO PROBLEMO, LAVER TABLER FOR THUMBNAILS: } else { // hvis large ikke er med som query-string
// START TABLE SAET cellpadding, cellspacing, colors, echo '<html><head><title>'. $pagetitle .'</title>'; echo '<head>'; echo "<body bgcolor=" . $bg . ">"; echo '<table width="100%" border=0 cellpadding=1 cellspacing=0><tr><td bgcolor="#333e46"><b><font face="verdana" size="5" color="white"><a href="'.$sti .'">' . $pagetitle . '</a></b></font></td><td bgcolor="#333e46" align="right"><a href="'.$sti .'"><img src="' .$grafiksti .'fdf.gif" border=0></a></td></tr></table>'; echo '<br><b><center><font face="verdana" size="1" color="white">Klik på et billede for at vise det i stort format!</b></font></center><br>'; echo '<table width="100%" border=0 cellpadding=3 cellspacing=0>'; echo '<tr>'; // FORDI <TD> DET ER SAT AF BRUGER, LAV THE PERCENTAGES: $divider=ceil(100/$td); if (($divider*$td)>100) $divider--;
// HENT IMAGES for ($l=0;$l<=sizeof($piccy)-1;$l++){ $isend = strpos((($l)/$td),"."); if (!$isend && ($l!=0)){ echo "</tr>\n<tr><td colspan=$td><br></td></tr>\n<tr>\n"; } if ($l==0){ echo "\n"; } // START <TD> echo '<td width="'.$divider.'%" valign="middle" align="center">'; // FA STORT BILLEDE (IF SELECTED) echo '<table border=8 bordercolor="#333e46" cellpadding=2 cellspacing=0><tr><td bgcolor="black">'; echo "<a href=\"$PHP_SELF?large=" . $piccy[$l] . "\">";
// VISER THUMBNAILS $thumb_mappe = $thumbnail_mappe . "/"; // vi sætter en skråstreg efter undermappens navn $thumb_name = $thumb_mappe . "thumbnail_" . $piccy[$l];
if (eregi("(\.jpg|\.JPG)$", $piccy[$l])) { // hvis filtype er jpg if(!file_exists($thumb_name)) { imageresizejpeg($piccy[$l],$maxwidth,$maxheight,$thumb_name) ; } else { $size=getimagesize($piccy[$l]); // laver et array med width og hight get_size($size,$maxwidth,$maxheight) ; } echo '<img src="' . $thumb_name . '" alt="' . $piccy[$l] . '" border=0 width="' . $newwidth .'" height="' . $newheight .'"></a></td></tr></table>'; } else { // hvis filtype ikke er jpg $size=getimagesize($piccy[$l]); // laver et array med width og hight get_size($size,$maxwidth,$maxheight) ; echo '<img src="' . $piccy[$l] . '" alt="' . $piccy[$l] . '" border=0 width="' . $newwidth .'" height="' . $newheight .'"></a></td></tr></table>'; } // OM NAVNET ER SAT TIL AT BLIVE VIST? if ($name=="1") { echo '<center><font face="verdana" color="white" size="1">' . $piccy[$l] . '</center></font>'; } echo '</td>'; echo"\n"; } // for-løkken slutter echo '</tr></table></div>'; echo '<br><center><button onclick="location.href=\''.$sti .'\';return false;" class="form">Tilbage til oversigt</button>';
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.