Avatar billede donslund Nybegynder
08. maj 2006 - 19:09 Der er 5 kommentarer og
1 løsning

Billeder kvadritake, hvorfor?

<?
        $picture = "billeder/".$_GET["filnavn"];

        $pw = $_GET["brede"]; //billede max-bredde
        $ph = $_GET["hojde"]; //billede max-højde

    if(file_exists("$picture")){
        $pic = $picture;
        $size = getimagesize($pic);
        $regn = $size[0]/$size[1];
        if($regn > 1){
            $new_w = $pw;
            $division = $size[0] / $new_w;
            $new_h = $size[1] / $division;
        }else{
            $new_h = $ph;
            $division = $size[1] / $new_h;
            $new_w = $size[0] / $division;
        }
        $im = ImageCreateTrueColor($new_w,$new_h);
        $src_img = ImageCreateFromJpeg($pic);
        ImageCopyResized($im,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));
   
        touch($im);
        imagejpeg($im, '', 100);
        ImageDestroy($im);
    }
?>

Er der nogen der kan gennemskue hvorfor billeder genereret med dette script bliver kvadratiske? De kanldes bred brede=100 og hojde=150
Avatar billede jakobdo Ekspert
09. maj 2006 - 12:41 #1
Er billedet kvadratisk inden du har resizet det?
Avatar billede donslund Nybegynder
09. maj 2006 - 13:57 #2
Ja, det må jeg jo tilstå at de er. Pinligt.....

Men hvorfor vælger den den højeste og ikke den laveste værdi? Den burde jo lave et billede der er 100x100 og ikke 150x150 pixels.
Avatar billede jakobdo Ekspert
09. maj 2006 - 13:59 #3
Prøv evt at brug denne funktion:

function resize( $filename, $newfilename, $maxw, $maxh )
{
    $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 );
    imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return file_exists($newfilename);
}
Avatar billede donslund Nybegynder
08. juni 2006 - 10:26 #4
Det virker faktisk. Smider du et svar?
Avatar billede jakobdo Ekspert
08. juni 2006 - 10:34 #5
Svar!
Avatar billede jakobdo Ekspert
08. juni 2006 - 21:26 #6
Takker for point.
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