Avatar billede Slettet bruger
31. juli 2007 - 12:53 Der er 1 kommentar

Brug af GD's imagecopyresampled

Hej eksperter.

Jeg har udviklet en flash-frontend, hvorigennem man kan vælge en billedstørrelse, uploade et billede og herefter trække en rektangel proportionalt med den valgte størrelse (billedet vises 1:1).
Billedet uploades herefter på webserveren under et nyt navn.

Men: Jeg kan ikke greje imagecopyresampled. Prøv at se nedenstående kode:

function skrivelementcontainer($jpgFile, $startx, $starty, $cropstoerrelsex, $cropstoerrelsey, $nybredde, $nyhoejde)
{
  $folder = "http://localhost/files/";
   
  // Hent dimensioner
  list($width_orig, $height_orig) = getimagesize($folder.$jpgFile);
  $reduktionsforhold = $width_orig / $cropstoerrelsex; // Skal måske bruges
   
  // Nu ændres størrelse
  $image_p = imagecreatetruecolor($nybredde, $nyhoejde);
  $image = imagecreatefromjpeg($folder.$jpgFile);
  imagecopyresampled($image_p, $image, -$startx, -$starty, 0, 0, $cropstoerrelsex, $cropstoerrelsey, $width_orig, $height_orig);
   
  // Output
  imagejpeg($image_p, "../../files/xxxx.jpg", 80);
}

Meningen er, at først skal billedet croppes jf. rammens startx og starty samt dennes dimensioner, cropstoerrelsex og cropstoerrelsey.
Herefter skal billedet størrelsesreduceres, således at det passer ind i den foruddefinerede billedstørrelse, f.eks. 150x130, repræsenteret af nybredde/nyhoejde

Har I nogle gode råd, der kan hjælpe mig med at få det til at fungere efter hensigten?
Avatar billede jakobdo Ekspert
31. juli 2007 - 22:10 #1
Du kan prøve at kigge på denne funktion:

function resize( $srcim, $maxw, $maxh )
{
    $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 );
    imagedestroy( $srcim );
    return $dstim;
}
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