Tilretning af kode til foto-visning
HejJeg har her på Eksperten fundet nedenstående kode og anvendt det i 1 års tid.
Koden genererer thumbnails ud fra de billed-filer der ligger i mappen. Når der så klikkes på en Thumbnails, bliver det pågældende billede vist. Her kan jeg så trykke tilbage nederst eller gå tilbage ved at klikke på billedet.
Men jeg mangler en funktion, der gør at jeg kan klikke til næste billede eller tilbage til forrige billede. Det kunne eksempelvis være et par knapper [<<] / [>>] ovenfor billedet på hver sin side af billedteksten.
Eksempel på brugen kan ses her:
http://www.vardeborg.dk/fdf/fotoarkiv/landslejr2006/09soendag/fotos/fotothumb.php
Koden ser sådan her ud:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Fotosider</title>
</head>
<?
// DEFINEREDE VARIABLERNE:
// Thumbnails max størrelse
$maxwidth = 150;
$maxheight = 100;
// Thumbnail-mappens navn
$thumbnail_mappe = "thumbnails";
// NUMRE AF <TD> PR. <TR> ( PA DANSK/ENGELSK: COLUMNS PA SIDEN :-) )
$td='5';
// BAGGRUNDSFARVE
$bg='white';
// SKAL NAVNES VISES PÅ BILLEDET
$name='1'; // 1 = yes, 0 = no
// SHOW TITLE PA SIDEN
$pagetitle='Landslejr 2006';
### --- PAS PA MED AT RETTET NOGET HERUNDER --- ###
function imageresizejpeg($sourcefile,$maxwidth,$maxheight,$destinationfile) { // funktion til resize eaf jpg-filer
global $newwidth,$newheight;
if($img_src=@imagecreatefromjpeg($sourcefile)) {
copy($sourcefile, $destinationfile);
$info=@getimagesize($sourcefile);
if($info[1]>$maxheight || $info[0]>$maxwidth)
{
$ratio_height=$maxheight/$info[1];
$ratio_width=$maxwidth/$info[0];
$ratio=min($ratio_width,$ratio_height);
$newwidth=intval($info[0]*$ratio);
$newheight=intval($info[1]*$ratio);
$img_dst=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $info[0], $info[1]);
@imagejpeg($img_dst, $destinationfile);
imagedestroy($img_dst);
}
else
{
$newwidth=$info[0];
$newheight=$info[1];
}
@imagedestroy($img_src);
return true;
}
else
{
return false;
}
}
function get_size($info,$maxwidth,$maxheight) { // funktion til beregning af størrelse af ikke-jpg-filer
global $newwidth,$newheight;
if($info[1]>$maxheight || $info[0]>$maxwidth) {
$ratio_height=$maxheight/$info[1];
$ratio_width=$maxwidth/$info[0];
$ratio=min($ratio_width,$ratio_height);
$newwidth=intval($info[0]*$ratio);
$newheight=intval($info[1]*$ratio);
return true;
}
else
{
$newwidth=$info[0];
$newheight=$info[1];
}
}
### --- 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" 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>'. $pagetitle .'</title>';
echo '<head>';
echo "<body bgcolor=" . $bg . ">";
echo '<div align="center"><b><font face="verdana" size="3">' . $pagetitle . '</b></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
$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><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>';
?>