Avatar billede palito Nybegynder
24. september 2006 - 17:23 Der er 1 kommentar

script til at resize et billedes størrelse

kan nogle hjælpe mig med et script som henter alle givne filendelser(.jpg, .jpeg og .gif) fra en mappe og herefter resize alle billederne så størrelsen passer, men at bredden bliver til det jeg har angivet i mit script (højden skal selv tilpasses, så billedet ikke ser helt akavet ud)
Avatar billede coderdk Praktikant
24. september 2006 - 19:23 #1
Prøv:

    function resize( $filename, $newfilename, $maxw, $maxh )
    {
        if ( $inf = getimagesize( $filename ) )
        {
            switch ( $inf[2] )
            {
                case 1:
                    $create = "imagecreatefromgif";
                    $save = "imagegif";
                    break;
                case 1:
                    $create = "imagecreatefromjpeg";
                    $save = "imagejpeg";
                    break;
                default:
                    die( 'Unsupported file type' );
            }
        }
        else
        {
            die( "No image?" );
        }
        $srcim = $create( $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 );
        $save( $dstim, $newfilename );
        imagedestroy( $dstim );
        imagedestroy( $srcim );
    }

    $files = glob( "folder/*.{jpg,jpeg,gif}", GLOB_NOSORT | GLOB_BRACE );
    foreach ( $files as $file )
    {
        resize( $file, $file, 150, 150 );
    }

Den resizer alle filer til max 150x100000 (altå max 150 bred) og bibeholder proportionerne - Den OVERSKRIVER de eksisterende filer! Hvis du vil gemme i en anden folder kan du lave:

        resize( $file, $file, 150, 100000 );

om til:

        resize( $file, "nyfolder/" . basename( $file ), 150, 100000 );
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