Jeg har et lille program, som automatisk genererer thumbnails af de billedfiler, som ligger i en bestemet mappe.
Det må du gerne få.
//Fil 1:
<html>
<head>
<style type="text/css">
a {text-decoration:none}
a:link { color: #ffffff; text-decoration: none; }
a:visited { color: #ffffff; text-decoration: none; }
a:active { color: #ffffff; text-decoration: none; }
a:hover { color: #ffffff; text-decoration: none; }
.form {
background-color: #cfcfcf;
border-color: #000000;
color: #000000;
border-bottom: 1px solid;
border-top: 1px solid;
border-left: 1px solid;
border-right: 1px solid;
font-family: Verdana;
font-size: 10px;
cursor: hand;
cursor: pointer;
}
</style>
</head>
<?
//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
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" 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 '<table width="100%" border=0 cellpadding=2 cellspacing=0><tr><td bgcolor="#333e46" width="35%"><b><font face="verdana" size="2" color="white">' . $pagetitle . '</b></font></td>
<td bgcolor="#333e46" align="center" width="30%">';
echo '<button onclick="location.href=\'?large='.$prev .'\';return false;" class="form">[< <]</button>';
echo " ";
echo '<button onclick="location.href=\'?large='.$next .'\';return false;" class="form">[> >]</button>';
echo '</b></font></td>
<td bgcolor="#333e46" align="right" width="35%">';
if ($name=="1") {echo '<font face="verdana" color="white" size="2">Billednavn: ' . $large . '</font>'; }
echo '</b></font></td></tr></table>';
// VIS IMAGE
echo '<table width="100%" border=0 cellpadding=0 cellspacing=0>';
echo '<tr>';
echo '<td valign="middle" align="center">
<table border=15 bordercolor="#333e46" cellpadding=2 cellspacing=0><tr><td bgcolor="black">
<a href=' .$filnavn.'><img src="'.$large.'" alt="'.$large.'" border=0></a>
</td>
</tr>
</table>
</td>';
echo '<br>';
echo '</tr></table>';
echo '<br>';
echo '<center><button onclick="location.href=\''.$filnavn .'\';return false;" class="form">Tilbage til galleri</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 .'fdflogo_lille.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>';
} // else slutter
echo '<br><br><br><div align="center"><font face="verdana" size="1"></a></font></div></body></html>';
?>
//FIL 2 = head.php
<?php
### --- HERFRA SKAL RETTES HVER GANG --- ###
// VIS TITLEN PA SIDEN
$pagetitle='Kredsweekend 2006 - Mellerup';
//Sti og fil til fotooversigten (bruges på oversigtens tilbage-knap)
//Sti og fil kan også være '../../landslejr2006.html'
$sti='../fotoarkiv.html';
### --- HERTIL SKAL RETTES HVER GANG --- ###
//Sti til grafikfil på thumbnailoversigten
$grafiksti='../';
// Thumbnails max størrelse
$maxwidth = 225;
$maxheight = 150;
// Thumbnail-mappens navn
$thumbnail_mappe = "thumbs";
// NUMRE AF <TD> PR. <TR> ( PA DANSK/ENGELSK: COLUMNS PA SIDEN :-) )
$td='4';
// BAGGRUNDSFARVE
$bg='#404d57';
// SKAL NAVNES VISES PÅ BILLEDET
$name='1'; // 1 = yes, 0 = no
//Navnet på denne fil
$filnavn = 'fotothumb.php';
?>
Ovenståender er 2 filer, som placeres i samme mappe som billedfilerne.
Mappen som filerne ligger i, skal skrivbare (Fjern skrivebeskyttelsen).
Eksempel kan ses her:
http://fdf.dk/ (...)Der er dog problemer med serveren i dag, hvorfor du kan oplever ustabilitet.
Super. Tak for det.
-swulff
p.s. har du selv skrevet det?
Lige en ting.
Skal scriptet være i en fil eller seperate?
-swulff
Aahh.. så først nu //Fil 1 og //Fil 2
Jeg har kun skrevet lidt af det. Jeg fandt det her på Eksperten for et par år siden, og så har jeg efterfølgende foretaget en række rettelser.
Spørg bare, hvis der er noget, som driller.
okay..
smider du et svar?
-swulff