Avatar billede jelboen Nybegynder
08. oktober 2005 - 13:06 Der er 4 kommentarer og
1 løsning

Lave et thumbnail med GDlib?

Hejsa.. i har sikkert hørt det her spørgsmål så utrolig mange gange. Jeg leder efter et script som kan lave et thumb af et billede som bliver uploadet. jeg bruger nedenstående kode til at uploade billeder med, og det virker fint. kan nogle hjælpe mig med at få placeret et GDlib thumbnail script i koden:

--------------------------------

<?

$filnavn = date('jmYhis');

$filnavn = "$filnavn.jpg";

echo "$filnavn";

if($_POST["action"] == "Upload Billede")
{
unset($imagename);

if(!isset($_FILES) && isset($HTTP_POST_FILES))
$_FILES = $HTTP_POST_FILES;

if(!isset($_FILES['image_file']))
$error["image_file"] = "Et billede blev ikke fundet.";


$imagename = $filnavn;
//basename($_FILES['image_file']['name']);
//echo $imagefile;

if(empty($imagename))
$error["imagename"] = "Billedenavnet blev ikke fundet.";

if(empty($error))
{
$newimage = "billeder/" . $imagename;
//echo $newimage;
$result = @move_uploaded_file($_FILES['image_file']['tmp_name'], $newimage);
if(empty($result))
$error["result"] = "Den uploadede fil kunne ikke flyttes til den rigtige mappe.";
}

}


?>


<form method="POST" enctype="multipart/form-data" name="image_upload_form" action="<?$_SERVER["PHP_SELF"];?>">
<p><input type="file" name="image_file" size="20"></p>
<p><input type="submit" value="Upload Billede" name="action"></p>
</form>

<?
if(is_array($error))
{
while(list($key, $val) = each($error))
{
echo $val;
echo "<br>\n";
}
}
?>

-------------------------------------------


Jeg har dog et par ting som jeg gerne vil have:
billedet skal gemmes i mappen: thumbs
billedet skal have navnet $filnavn (står øverst i filen)
Avatar billede jakobdo Ekspert
08. oktober 2005 - 15:28 #1
Du kan bruge denne funktion.

function resize( $filename, $newfilename, $maxw, $maxh )
{
    $result = false;
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    $result = imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return $result;
}

Du kalder den efter:

if(empty($error))
{
    $newimage = "billeder/" . $imagename;
    //echo $newimage;
    $result = @move_uploaded_file($_FILES['image_file']['tmp_name'], $newimage);
    if(empty($result))
        $error["result"] = "Den uploadede fil kunne ikke flyttes til den rigtige mappe.";
    else
        resize( $newimage, "./thumbs/thumb_" . $newimage, 200, 200 );
}
Avatar billede jelboen Nybegynder
08. oktober 2005 - 15:40 #2
Fatal error: Call to undefined function: imagecreatefromjpeg() in C:\Programmer\Apache Group\Apache2\htdocs\includes\billeder2.php on line 7

^^
Denne besked får jeg når jeg prøver at uploade et billede... kan det skyldes at jeg ikke har GDlib 2 installeret. i så fald, hvordan aktiverer jeg det?
Avatar billede jakobdo Ekspert
08. oktober 2005 - 17:14 #3
Det kan det meget vel ja!
Har du GDlib overhovedet?
Prøv evt at lave filen:
<?php
phpinfo();
?>

Og kig efter gdlib
Avatar billede jelboen Nybegynder
17. februar 2006 - 11:49 #4
Hehe nu har den her vidst kørt længe nok... skriv et svar og du får point. jeg har desværre ikke fundet ud af problemet :D
Avatar billede jakobdo Ekspert
17. februar 2006 - 12:13 #5
Svar!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester