26. juni 2006 - 20:54Der er
18 kommentarer og 1 løsning
Resize af galleribilleder
Jeg forsøger at lave nogle thumbnails, men det lader til at mit script ikke kan finde mine filer. Har nogle filer i mappen billeder, og i den har jeg en mappe "thumbnails", her skulle mine thumbnails gerne ende. Koden virker fint hvis jeg køre siden for sig selv, men køre den som inklude altså noget lignende index.php?side=lav_thumbs
Får følgende fejl:
Warning: imagecreatefromjpeg(): Unable to access links.jpg in /var/www/hjemmeside.dk/public_html/side/billeder/thumb.php on line 29
Warning: imagecreatefromjpeg(links.jpg): failed to open stream: No such file or directory in /var/www/hjemmeside.dk/public_html/side/billeder/thumb.php on line 29
Script:
function imageresizejpeg($sourcefile,$maxwidth,$maxheight,$destinationfile) { // funktion til resize eaf jpg-filer
Når du så kalder filen via: index.php?side=thumb.php Så skal du lave fulde stier: /var/www/hjemmeside.dk/public_html/side/billeder/ Så vil din kode virke.
Men hvordan indsætter jeg den fulde sti? Er det noget lignende: function imageresizejpeg("/var/www/hjemmeside.dk/public_html/side/billeder/ $sourcefile",$maxwidth,$maxheight,"/var/www/hjemmeside.dk/public_html/side/billeder/thumbnails/$destinationfile") ???
Ja, f.eks. Du kunne også lave: $src = "/var/www/hjemmeside.dk/public_html/side/billeder/"; $dst = "/var/www/hjemmeside.dk/public_html/side/billeder/thumbnails/"; Og så i funktionen: imageresizejpeg($src . sourcefile, $maxwidth, $maxheight, $dst . $destinationfile);
// Thumbnails max størrelse $maxwidth = 224; $maxheight = 168;
// Thumbnail-mappens navn $thumbnail_mappe = "./billeder/thumbnails";
// NUMRE AF <TD> PR. <TR> ( PA DANSK/ENGELSK: COLUMNS PA SIDEN :-) ) $td='2';
// BAGGRUNDSFARVE $bg='white';
// SKAL NAVNES VISES PÅ BILLEDET $name='1'; // 1 = yes, 0 = no // SHOW TITLE PA SIDEN $pagetitle='billeder';
### --- PAS PA MED AT RETTET NOGET HERUNDER --- ### $src = "/var/www/hjemmeside.dk/public_html/side/billeder/"; $dst = "/var/www/hjemmeside.dk/public_html/side/billeder/thumbnails/";
function imageresizejpeg($src . $sourcefile,$maxwidth,$maxheight,$dst2 . $destinationfile) { // funktion til resize eaf jpg-filer
### --- PAS PA MED AT RETTET NOGET HERUNDER --- ### $handle=opendir('./billeder'); // 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>BILLEDER " . $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" size="1">Dit billedevalg: ' . $large . '</font>'; } // VIS IMAGE echo '<table width="100%" border=0 cellpadding=0 cellspacing=0>'; echo '<tr>'; echo '<td valign="middle" align="center"><a href=java script:history.back(-1)><img src="'.$large.'" alt="'.$large.'" border=0></a></td>'; echo '<br>'; echo '</tr></table>'; echo '<br><br>'; echo '<a href=java script:history.back(-1)>'; echo '<font face="verdana" size="1">Tilbage til galleri</font></a>'; // 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>billeder</title>'; echo '<head>'; echo "<body bgcolor=" . $bg . ">"; echo '<div align="center"><font face="verdana" size="1">' . $pagetitle . '</font><br>'; echo '<br><table width="100%" border=0 cellpadding=0 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 "<a href=\"$PHP_SELF?large=" . $piccy[$l] . "\">"; // VISER THUMBNAILS $thumbnail_mappe = $thumbnail_mappe . "/"; // vi sætter en skråstreg efter undermappens navn $thumb_name = $thumbnail_mappe . "thumbnail_" . $l . ".jpg"; if (eregi("(\.jpg|\.JPG)$", $piccy[$l])) { // hvis filtype er jpg imageresizejpeg($piccy[$l],$maxwidth,$maxheight,$thumb_name) ; echo '<img src="' . $thumb_name . '" alt="' . $piccy[$l] . '" border=0 width="' . $newwidth .'" height="' . $newheight .'"></a><br><br>'; } 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><br><br>'; } // OM NAVNET ER SAT TIL AT BLIVE VIST? if ($name=="1") { echo '<font face="verdana" size="1">' . $piccy[$l] . '</font>'; } echo '</td>'; echo"\n"; } // for-løkken slutter echo '</tr></table></div>'; } // else slutter echo '<br><br><br><div align="center"><font face="verdana" size="1"></a></font></div></body></html>'; ?>
Det var meget kode, det kan laves lettere, men det må evt. blive i aften for mit vedkommende. Men prøv at ret denne linie til fuldsti: opendir('./billeder')
Og fjern $src og $dst i dit funktions kald i linie 27.
Hvis jeg smider opendir('/var/www/hjemmeside.dk/public_html/side/billeder/'); ind og erstatter $src og $dst med det oprindelige får jeg følgende fejl for hvert af de billeder i mappen billeder. Den udskriver navnene på billeder fint nok:
Warning: imagecreatefromjpeg(): Unable to access links.jpg in /var/www/hjemmeside.dk/public_html/side/billeder/thumb.php on line 34
Warning: imagecreatefromjpeg(links.jpg): failed to open stream: No such file or directory in /var/www/hjemmeside.dk/public_html/side/billeder/thumb.php on line 34
Et svar! Og løsningen var i bund og grund at give fuld sti i denne funktion: imageresizejpeg($fuldsti_til_original_billeder . $piccy[$l],$maxwidth,$maxheight,$fuldsti_til_thumb_billeder . $thumb_name) ;
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.