Avatar billede noodrem Nybegynder
30. januar 2009 - 23:41 Der er 3 kommentarer

Resize af billede

Jeg har et problem med det script jeg bruger det til at resize billeder med. Det resizer nemlig ikke billederne til den størrelse jeg har angivet.

Et eksempel er en fil på 800 x 600 der bliver resizet til 288 x 216 når jeg faktisk har angivet det til at skulle være 200 x 130.

Min kode ser ud som følge:

<?

if(!isset($_SESSION['admin'])) {
    include("login/admincheck.php");
    } else {
        $upfil = $_REQUEST['upfil1'];
        $id = microtime();

       
       
       
    ///*** FIL START FIL START ***///
               
        function replace_string($ind_str){
            $soketter = array("æ","ø","å","Æ","Ø","Å"," ");
            $byttil = array("ae","oe","aa","AE","OE","AA","_");
            $tekst = str_replace($soketter,$byttil,$ind_str);
            return $tekst;
        }
        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;
        }
        if(isset($_POST['submit'])){
            if($_FILES["upfil"]["size"] > 0) {
            $konfiguration["upload_bibliotek"] = "./pictures";
            $konfiguration["max_stoerrelse"] = "10000";
           
            /* Hvor flytter vi fra og til */
            $fra = $_FILES["upfil"]["tmp_name"];
            $til = $konfiguration["upload_bibliotek"] . "/" . replace_string($_FILES["upfil"]["name"]) . $id;
            $til_t = $konfiguration["upload_bibliotek"] . "/thumb_" . replace_string($_FILES["upfil"]["name"]) . $id;
               
            /* Check PHP-version */
            list($major, $minor, $rev) = explode(".", phpversion());
            if($major < 4){
              die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
              }
           
            /* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */
              if($minor < 1){
              $_FILES = $HTTP_POST_FILES;
            $_POST = $HTTP_POST_VARS;
            $_SERVER = $HTTP_SERVER_VARS;
              }
           
              /* Accepterer vi filens stoerrelse? */
              $fil_stoerrelse = filesize($fra)/1024;
              if($fil_stoerrelse > $konfiguration["max_stoerrelse"]){
              die("Desværre - filen er for stor. Jeg accepterer kun " .
            $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
            ceil($fil_stoerrelse, 1) . " kb");
              }
           
              if(function_exists("move_uploaded_file")) {
            resize($fra, $til, 324, 216);
              resize($fra, $til_t, 200, 130);
            }
            else {
              copy($fra, $til);
            }
            }
       
           
                $filnavn = $til;
                $filnavnthumb = $til_t;
            }
           
        ///*** FIL SLUT  FIL SLUT ***///
       
        }
        $query_insert = mysql_query("INSERT INTO billeder (id, filnavn, filnavnthumb) VALUES ('$id', '$filnavn', '$filnavnthumb'
        )")
        or die(mysql_error());
   

           
        header("location:index.php?side=billeder");
       
   
   

?>


I øvrigt leder jeg efter et script (formentligt java) der åbner et lille vindue (uden faner mv.) i størrelsen 800 x 600 når der trykkes på thumbnailen.

Mvh.
Avatar billede jakobdo Ekspert
31. januar 2009 - 12:22 #1
Det ligner mit resize script og der er testet og virker altså fint fint her. :o)
Så du må evt. udskrive nogle bredder og højder i resize funktionen og se hvor koden evt. fejler i dit tilfælde.
Avatar billede noodrem Nybegynder
31. januar 2009 - 12:50 #2
Okay tak for lån så :) Prøver lige at leje lidt med det.

Har du et forslag til hvordan det nye vindue laves, som er set brugt i mange gallerier?
Avatar billede jakobdo Ekspert
01. februar 2009 - 12:00 #3
lightbox 2
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