Hej,
Jeg har fundet noget gammel kode, jeg havde liggende frem og tilpasset det lidt. Det er ikke testet.
Hvis du gemmer koden i lav_thumb.php, kan du kalde den med lav_thumb.php?fil=billeder\\1.gif
og der bliver lavet et billede der hedder _TN_1.gif i 50x50.
<?
function myfiletype($file)
{
// Undersøg filtype: jpg, jpeg, gif, png)
$name = split("\\.", $file);
$max = count($name) - 1;
// Er det allerede en thumbnail
if (strncmp($name[$max], "_TN_",4)==4) {
// Er allerede konverteret
return 4; }
if (!strcasecmp($name[$max], "jpg")) {
return 1; }
if (!strcasecmp($name[$max], "jpeg")) {
return 1; }
if (!strcasecmp($name[$max], "gif")) {
return 2; }
if (!strcasecmp($name[$max], "png")) {
return 3; }
else {
// Ukendt fil type
return 4; }
}
$quality = 80;
$thumbw = 50;
$thumbh = 50;
$deltaX = 0;
$deltaY = 0;
// Hent fil navn
$file="";
if (!empty($HTTP_GET_VARS["fil"]))
{
$file = $HTTP_GET_VARS["fil"];
}
$type = myfiletype($file);
if ($type == 4) { exit("Kan ikke lave thumbnail! Ukendt filtype eller allerede et thumbnail."); }
$mydir = "";
if ($mydir !== "")
{
$mydir = $mydir."/";
}
$final = $mydir."_TN_".$file;
$myfile = $mydir.$file;
echo $myfile;
$imageInfo = getimagesize($myfile);
$width = $imageInfo[0];
$height = $imageInfo[1];
$pic_lib = "gd";
if ($width > $height) {
$thumbh = ($height * $thumbw) / $width;
$deltaY = (int)((120 - $thumbh) / 2); }
else {
$thumbw = ($width * $thumbh) / $height;
$deltaX = (int)((160 - $thumbw) / 2); }
if ($type != 1) {
$final = $final.".jpg";
$dbfinal = "_TN_".$file.".jpg"; }
else { $dbfinal = "_TN_".$file; }
if ($pic_lib == "gd") {
if ($type == 1) { $src_img = imagecreatefromjpeg($myfile); }
if ($type == 2) { $src_img = imagecreatefromgif($myfile); }
if ($type == 3) { $src_img = imagecreatefrompng($myfile); }
if (!$dst_img = imagecreatetruecolor(160,120))
{
$dst_img = imagecreate(160,120);
imagecopyresized($dst_img, $src_img, $deltaX, $deltaY, 0, 0, $thumbw, $thumbh, $width, $height);
}
else
{
imagecopyresampled($dst_img, $src_img, $deltaX, $deltaY, 0, 0, $thumbw, $thumbh, $width, $height);
}
// Gem billede
imagejpeg($dst_img, $final, $quality);
imagedestroy($src_img);
imagedestroy($dst_img);
}
if ($pic_lib == "ImageMagick") {
$curdir = getcwd();
$convertedSize = ceil(($thumbw / $width)*100);
$newfile = $curdir.'/'.$myfile;
$dbfinal2 = $curdir."/".$dbfinal;
exec("$image_path/convert -geometry $convertedSize% $newfile $dbfinal2");
}
?>
MvH
Stefan Svensson
http://fusket.frac.dk