webForumDet fria alternativet

GD2 hjälp

1 svar · 276 visningar · startad av AndersN

AndersNMedlem sedan nov. 2000146 inlägg
#1

Hittade en funktion på ett forum för att göra om storleken på bilder vid uppladdning, dock fungerar det inte riktigt som jag vill.
Har försökt läsa mig till hur jag skall kunna ändra det men antingen e jag dum i huvudet eller bara jättetrött för jag får inte till det.

Detta är koden:

 //Funktion för att skala presentationsbilden vid uppladdning.
    
      function scalePic($src)
    {
        global $new_data;
        global $new_size;

        //Fasta värden
        $dstWH=150;
        $quality=100;

        $info = getimagesize($src);
        switch($info[2])
        {
            case 1:
            $im_src = imagecreatefromgif($src);
            break;
            case 2:
            $im_src = imagecreatefromjpeg($src);
            break;
            case 3:
            $im_src = imagecreatefrompng($src);
            break;
        }

        if ($info[1] >= $info[0]) {
            $srcX = 0;
            $srcY = 0;
            $srcW = $info[0];
            $srcH = $info[0];
        }
        else
        {
            $srcX = round(($info[0] - $info[1])/2);
            $srcY = 0;
            $srcW = $info[1];
            $srcH = $info[1];
        }

        // Använd dessa om du har stöd för GD2
        $img_thumb = imageCreateTruecolor($dstWH, $dstWH);
        ImageCopyResampled ( $img_thumb, $im_src, 0, 0, $srcX, $srcY, $dstWH, $dstWH, $srcW, $srcH );
        //ImageCopyResampleBicubic( $img_thumb, $im_src, 0, 0, $srcX, $srcY, $dstWH, $dstWH, $srcW, $srcH );

        // output
        $tmpfname = tempnam ("../../../log/", "FOO");
        // Generate the temp file

        imageJPEG($img_thumb, $tmpfname, $quality);
        $new_data = addslashes(fread(fopen($tmpfname,"rb"), filesize($tmpfname)));
        $new_size = filesize($tmpfname);

        unlink($tmpfname);
        // finished with the file, discard

        //Destroy mempics
        ImageDestroy($img_thumb);
        ImageDestroy($im_src);
    }

Denna gör ju då så bilden blir 150*150 medans jag vill ha höjden 200 och bredden 150.

Det är okej o dömma ut mig bara nån kan hjälpa lite :birp

PeddaMedlem sedan juni 20006 032 inlägg
#2

Ok, då får vi göra lite ändringar

//Fasta värden
$dstWidth=150; // ändra
$dstHeight=200; // lägg till
$quality=100;

och längre ner i koden ändrar du en rad till

$img_thumb = imageCreateTruecolor($dstWidth, $dstHeight);
132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)