Avatar billede tupsy Nybegynder
24. november 2003 - 08:33 Der er 8 kommentarer og
1 løsning

Tilføj resize med Gblib til upload script.

Jeg har søgt rundt på exp.dk for at finde et resize script men kan ikke finde noget jeg helt kan gennemskue..

Det jeg skal have er et resize script som tjekker størrelsen på det billede der uploades (kun jpg)
Hvis billedet er mere end 300 pixels bred skal det resizes ned så det bliver 300 pixels bred (og holder sit orginale forhold)
Er det under 300 pixels skal det bare uploades som det er.

Hvordan hulen laver jeg det???

Det upload script jeg bruger lige nu ser således ud :
if ($_FILES['fil']['tmp_name'])
{

move_uploaded_file($_FILES['fil']['tmp_name'], $DOCUMENT_ROOT."/event_pix/"."$indsaetid.jpg");

mysql_query("INSERT INTO event_pix (eventid, pixnavn) VALUES ('$indsaetid', '$indsaetid')");

}
Avatar billede detox Nybegynder
24. november 2003 - 14:37 #1
Problemet er at funktionerne i GDlib ikke er så enkle endda, men her er et eksempel:

<?
$dir = "thumbs";// upload mappe
if (isset($_POST['send'])) {
    if (is_uploaded_file($_FILES['fil']['tmp_name'])) {
        $tmp = $_FILES['fil']['tmp_name'];
        if ($_FILES['fil']['type'] == "image/pjpeg") {
            $dest = $dir."/".$_FILES['fil']['name'];
            if (move_uploaded_file($_FILES['fil']['tmp_name'], $dest)) echo "Billede er uploaded<br />";
            $im = imagecreatefromjpeg($dest);
            $b = imagesx($im);
            $h = imagesy($im);
            if ($b>300) {
                $d = 300/$b;
                $dh = round($h*$d);
                $db = 300;
                $dest_im = imagecreatetruecolor($db, $dh);
                imageAntiAlias($dest_im,true);
                imagecopyresampled($dest_im,$im,0,0,0,0,$db,$dh,$b,$h);
                imagejpeg($dest_im, $dest, 100);
                echo "Billedet er blevet mindre!<br />";
            }
        }
    } else {
        echo "Noget gik galt!";
    }
} else {
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<input name="fil" type="file" /><br />
<input name="send" type="submit" value="Send" />
</form>
<? }?>
Avatar billede tupsy Nybegynder
24. november 2003 - 20:15 #2
Jeg har nu fået det til at virke.. Takker..
Smider du et svar???
Avatar billede detox Nybegynder
24. november 2003 - 20:51 #3
Jeps c",)
Avatar billede tupsy Nybegynder
03. december 2003 - 08:40 #4
Et lille tillægs spørgsmål..
Hvad nu hvis det var højden jeg ville måle/styre??
Hvad skulle så ændres??

$im = imagecreatefromjpeg($DOCUMENT_ROOT."/forside/"."forside.jpg");
$b = imagesx($im);
$h = imagesy($im);
if ($b>320) {
$d = 320/$b;
$dh = round($h*$d);
$db = 320;
$dest_im = imagecreatetruecolor($db, $dh);
imageAntiAlias($dest_im,true);
imagecopyresampled($dest_im,$im,0,0,0,0,$db,$dh,$b,$h);
imagejpeg($dest_im, $DOCUMENT_ROOT."/forside/"."forside.jpg", 100);
Avatar billede detox Nybegynder
03. december 2003 - 10:53 #5
Så bytter du bare rundt på b og h her:

if ($h>320) {
$d = 320/$h;
$db = round($b*$d);
$dh = 320;
Avatar billede tupsy Nybegynder
04. december 2003 - 00:17 #6
Kanont..
Takker..
Avatar billede detox Nybegynder
06. december 2003 - 01:34 #7
Velbekommen
Avatar billede tupsy Nybegynder
11. november 2004 - 08:23 #8
Lige et ekstra ???
Kan man kører kvaliteten ned på outputtet fra ens resise???
Avatar billede detox Nybegynder
11. november 2004 - 22:54 #9
Ja, kvaliteten styres af det sidste parameter i imagejpeg(); og det angives i procent.
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