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
Annonceindlæg fra Lenovo
Er billedet kvadratisk inden du har resizet det?
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.
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); }
Det virker faktisk. Smider du et svar?
Vi tilbyder markedets bedste kurser inden for webudvikling