Kan inget om PHP men har hittat ett bildvisarscript som gör thumbnails av bilderna och öppnar de större bilderna i en bildvisare med framåt-bakåt knappar.
Nu undrar jag om man kan fixera storleken på thumnailen så att alla är lika stora? Just nu blir de bara 5 ggr så små som originalbilden. Jag bifogar koden. Tacksam för all hjälp jag kan få!
<?
//
// SPA : Simple Photo Album.
// version 0.2
// author: Ilann Cohen - http://ilannweb.free.fr
//
//You may customize the parameters sections
//
// START OF PARAMETERS SECTION
$doc_title = "Album generated by Simple Photo Album"; //web page title
$columns=10; //number of images per line
$ratio=5; //ratio imageSize / thumbnailImageSize
$quality=5; //thumbnail image quality (0: worst to 100:best)
$scriptname= "index.php"; //filename of this script
$thumb_dir = "thumb"; //directory created to stored small images
$thumb_prefix = "thumb_"; //prefix for generated images
// END OF PARAMETERS SECTION
echo "<html>\n<head>\n<title>$doc_title</title>\n";
echo "<body bgcolor=white>\n</head>\n\n\n";
echo "<center>\n<P><BR><BR>\n\n";
$mydirectory= '.'; //directory in which images are fetched
$counter=0;
$nbfiles = 0;
$currfile = "";
$filestab[0] = "";
$handle=opendir($mydirectory);
//create a directory for thumbnail images
if (! is_dir($thumb_dir))
{
mkdir($thumb_dir, 0777);
}
while ($currfile = readdir($handle))
{
// We get the extension of the current file and keep only image files
$extension= strtolower(substr( strrchr( $currfile, "." ), 1 ));
if ($extension== "gif" || $extension== "jpg" || $extension== "jpeg" ||
$extension== "png")
{
$nbfiles++;
$currfile = trim($currfile);
$filestab[$nbfiles] = $currfile;
if ($ishome == "")
{
$size = GetImageSize($currfile);
$width = $size[0] / $ratio;
$height = $size[1] / $ratio;
$format = $size[2]; //1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD, 6 = BMP
$currthumbfile = "./" . $thumb_dir . "/" . $thumb_prefix . $currfile;
if (! file_exists($currthumbfile))
{
//GIF format is not supported anymore by GD lib...
if ($format == 2) //JPG
$im = imagecreatefromjpeg($currfile);
else if ($format == 3) //PNG
$im = imagecreatefrompng($currfile);
if (!$im)
{
$currthumbfile = $currfile;
}
else
{
Imagejpeg($im, $currthumbfile, $quality);
ImageDestroy($im);
}
}
$currfile = str_replace(" ","%20",$currfile); // Allow filenames with space characters
$currthumbfile = str_replace(" ","%20",$currthumbfile); // Allow filenames with space characters
echo "<A HREF=$scriptname?ishome=1&filename=$currfile&filenumber=$nbfiles>\n";
echo "<IMG SRC=$currthumbfile WIDTH=$width HEIGHT=$height";
$currfile = str_replace("%20"," ",$currfile); // Clean display of filenames with space characters
echo " alt=\"Enlarge $currfile\">\n";
$currfile = str_replace(" ","%20",$currfile); //Clean display of filenames with space characters
echo "</A>\n";
$counter++;
if ($counter == $columns)
{
$counter = 0;
echo "<P><P><BR>";
}
}
}
}
closedir($handle);
if ($ishome == 1)
{
echo "<P>\n";
$filename = str_replace(" ","%20",$filename); // Allow filenames with space characters
$filename = stripslashes($filename); // Allow filenames with ' characters
echo "<IMG SRC=$filename>\n";
$display = str_replace("%20"," ",$filename); // Clean display of filenames with space characters
echo "<br><b> $display </b><br>";
echo "<P><BR>\n\n";
if ($filenumber != 1)
{
$prevnumber = $filenumber - 1;
$filestab[$prevnumber] = str_replace(" ","%20",$filestab[$prevnumber]); // Allow filenames with space characters
echo "[<A HREF=$scriptname?ishome=1&filename=$filestab[$prevnumber]&filenumber=$prevnumber>";
echo " << Previous</A>] \n";
}
echo " [<A HREF=$scriptname>Main Page</A>] \n";
echo " \n" ;
if ($filenumber != $nbfiles)
{
$nextnumber = $filenumber + 1;
$filestab[$nextnumber] = str_replace(" ","%20",$filestab[$nextnumber]); // Allow filenames with space characters
echo "[<A HREF=$scriptname?ishome=1&filename=$filestab[$nextnumber]&filenumber=$nextnumber>";
echo "Next >></A>]\n";
}
echo "\n\n";
}
?>
<P><P><P><P><HR>
Generated by <A HREF=http://ilannweb.free.fr target="_top">SPA : Simple Photo Album</A>
</center>
</html>
Tack för tipset. Dessvärre blir thumbsen pyttesmå när jag bara klistrade in kodsnutten istället för $ratio. Vad kan det bero på? Som sagt, är helt nybörjare på detta...Så här ser det ut nu:
Provade det ni sa men det fungerar ändå inte. Hittade ett ställe i koden där den verkade ställa in storlek. Kan det vara så att man måste ändra där ochså om man ändrat uppe i parameter-sektionen? Skulle vilja ha dem 71 x 71 px.
<?
$doc_title = "Album generated by Simple Photo Album";
$columns=10;
$size = GetImageSize($currfile);
$width = 150;
$height = round($size[1] * $width / $size[0]);
$quality=70;
$scriptname= "index.php";
$thumb_dir = "thumb";
$thumb_prefix = "thumb_";
echo "<html>\n<head>\n<title>$doc_title</title>\n";
echo "<body bgcolor=white>\n</head>\n\n\n";
echo "<center>\n<P><BR><BR>\n\n";
$mydirectory= '.';
$counter=0;
$nbfiles = 0;
$currfile = "";
$filestab[0] = "";
$handle=opendir($mydirectory);
//create a directory for thumbnail images
if (! is_dir($thumb_dir))
{
mkdir($thumb_dir, 0777);
}
while ($currfile = readdir($handle))
{
// We get the extension of the current file and keep only image files
$extension= strtolower(substr( strrchr( $currfile, "." ), 1 ));
if ($extension== "gif" || $extension== "jpg" || $extension== "jpeg" ||
$extension== "png")
{
$nbfiles++;
$currfile = trim($currfile);
$filestab[$nbfiles] = $currfile;
[red] if ($ishome == "")
{
$size = GetImageSize($currfile);
$width = $size[0] / $ratio;
$height = $size[1] / $ratio;
$format = $size[2]; //1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD, 6 =[/red] BMP
$currthumbfile = "./" . $thumb_dir . "/" . $thumb_prefix . $currfile;
if (! file_exists($currthumbfile))
{
//GIF format is not supported anymore by GD lib...
if ($format == 2) //JPG
$im = imagecreatefromjpeg($currfile);
else if ($format == 3) //PNG
$im = imagecreatefrompng($currfile);
if (!$im)
{
$currthumbfile = $currfile;
}
else
{
Imagejpeg($im, $currthumbfile, $quality);
ImageDestroy($im);
}
}
$currfile = str_replace(" ","%20",$currfile); // Allow filenames with space characters
$currthumbfile = str_replace(" ","%20",$currthumbfile); // Allow filenames with space characters
echo "<A HREF=$scriptname?ishome=1&filename=$currfile&filenumber=$nbfiles>\n";
echo "<IMG SRC=$currthumbfile WIDTH=$width HEIGHT=$height";
$currfile = str_replace("%20"," ",$currfile); // Clean display of filenames with space characters
echo " alt=\"Enlarge $currfile\">\n";
$currfile = str_replace(" ","%20",$currfile); //Clean display of filenames with space characters
echo "</A>\n";
$counter++;
if ($counter == $columns)
{
$counter = 0;
echo "<P><P><BR>";
}
}
}
}
closedir($handle);
if ($ishome == 1)
{
echo "<P>\n";
$filename = str_replace(" ","%20",$filename); // Allow filenames with space characters
$filename = stripslashes($filename); // Allow filenames with ' characters
echo "<IMG SRC=$filename>\n";
$display = str_replace("%20"," ",$filename); // Clean display of filenames with space characters
echo "<br><b> $display </b><br>";
echo "<P><BR>\n\n";
if ($filenumber != 1)
{
$prevnumber = $filenumber - 1;
$filestab[$prevnumber] = str_replace(" ","%20",$filestab[$prevnumber]); // Allow filenames with space characters
echo "[<A HREF=$scriptname?ishome=1&filename=$filestab[$prevnumber]&filenumber=$prevnumber>";
echo " << Previous</A>] \n";
}
echo " [<A HREF=$scriptname>Main Page</A>] \n";
echo " \n" ;
if ($filenumber != $nbfiles)
{
$nextnumber = $filenumber + 1;
$filestab[$nextnumber] = str_replace(" ","%20",$filestab[$nextnumber]); // Allow filenames with space characters
echo "[<A HREF=$scriptname?ishome=1&filename=$filestab[$nextnumber]&filenumber=$nextnumber>";
echo "Next >></A>]\n";
}
echo "\n\n";
}
?>
<P><P><P><P><HR>
Generated by <A HREF=http://ilannweb.free.fr target="_top">SPA : Simple Photo Album</A>
</center>
</html>
Är det jobbigt för servern att spara om bilderna såhär? Måste den göra om det för varje person som tittar på sidan eller görs det en gång och sen är det som vanligt att man har en thumb-bild och en vanlig?
I din katalog där du har dina bilder, har du en katalog 'thumb' med dina thumbnails. Rensa denna.
Gäller din länk till albumet som du gav tidigare i tråden ?
Då har du fortfarande tomma värden på WIDTH och HEIGHT. Jag kan inte se i koden du visat hur detta kan vara möjligt.
Tills vidare, ta bort dessa från dina länkar. Alltså i HTML-koden i <img>-taggarna.
Menar du att jag ska ta bort alla thumbnails och att scriptet asnvänder sig av originalbilderna? Beträffande det där du skrev om width och height blir jag förvirrad, därför att den enda fil jag har är index.php. Det finns ingen html-sida, utan den skapas tydligen av php-skriptet. Så jag vet inte var jag ska ändra width och height. Länken gäller fortfarande.
Enligt det länk du gav tidigare får $width och $height ingen värde.
I den genererade HTML-hoden står det: WIDTH= HEIGHT=
Detta kommer eventuellt att ge dig minimala thumbnails.
Rensa katalogen med thumbnails.
Skriptet kommer att generera nya.