07. maj 2007 - 15:54
Der er
8 kommentarer og 2 løsninger
jpg, gif, png etc.
Jeg har dette billede script til resize: function resize( $filename, $newfilename, $max) { $srcim = imagecreatefromjpeg( $filename ); $ow = imagesx( $srcim ); $oh = imagesy( $srcim ); $wscale = $max / $ow; $hscale = $max / $oh; $scale = ( $hscale > $wscale ? $hscale : $wscale ); $nw = round( $ow * $scale, 0 ); $nh = round( $oh * $scale, 0 ); $dstim = imagecreatetruecolor( $max, $max ); if($nh > $nw) { $diff = ($nh - $max)/2; imagecopyresampled( $dstim, $srcim, 0, 0, 0, $diff, $max, $max+$diff, $ow, $oh); } elseif($nh < $nw) { $diff = ($nw - $max)/2; imagecopyresampled( $dstim, $srcim, 0, 0, $diff, 0, $max+$diff, $max, $ow, $oh); } else { imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $max, $max, $ow, $oh); } imagejpeg( $dstim, $newfilename, 100); imagedestroy( $dstim ); imagedestroy( $srcim ); return file_exists($newfilename); } Jeg vil gerne vide hvad jeg gør for at det også virker med png, og gif? Er det bare at skifte jpeg ud med gif og png? Eller? På forhånd tak
Annonceindlæg fra Barco
Er jeres mødelokaler sikre nok?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
$srcim = imagecreatefromjpeg( $filename ); du kan lave en med $srcim = imagecreatefromgif( $filename ); $srcim = imagecreatefrompng( $filename );
Du skal rette disse linier med png eller gif: $srcim = imagecreatefromjpeg( $filename ); imagejpeg( $dstim, $newfilename, 100);
imagecreatefrompng() eller imagecreatefromgif() imagegif() eller imagepng()
Jo tak, kan se i svarede på samme tid(næsten), så hvis i begge smider et svar =)
Svar! :o) Man burde evt. rette funktionen til, så den kan klare flere filtyper og selv håndtere hvilken type der er tale om.
Måske en funktion ala denne stil: function resize( $filename, $newfilename, $max) { $ext = strtolower(end(explode('.',$filename))); switch($ext) { case 'jpg': case 'jpeg': case 'jpe': $srcim = imagecreatefromjpeg( $filename ); break; case 'gif': $srcim = imagecreatefromgif( $filename ); break; case 'png': $srcim = imagecreatefrompng( $filename ); break; default: return false; } $ow = imagesx( $srcim ); $oh = imagesy( $srcim ); $wscale = $max / $ow; $hscale = $max / $oh; $scale = ( $hscale > $wscale ? $hscale : $wscale ); $nw = round( $ow * $scale, 0 ); $nh = round( $oh * $scale, 0 ); $dstim = imagecreatetruecolor( $max, $max ); if($nh > $nw) { $diff = ($nh - $max)/2; imagecopyresampled( $dstim, $srcim, 0, 0, 0, $diff, $max, $max+$diff, $ow, $oh); } elseif($nh < $nw) { $diff = ($nw - $max)/2; imagecopyresampled( $dstim, $srcim, 0, 0, $diff, 0, $max+$diff, $max, $ow, $oh); } else { imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $max, $max, $ow, $oh); } switch($ext) { case 'jpg': case 'jpeg': case 'jpe': imagejpeg( $dstim, $newfilename, 100); break; case 'gif': imagegif( $dstim, $newfilename); break; case 'png': imagepng( $dstim, $newfilename); break; } imagedestroy( $dstim ); imagedestroy( $srcim ); return file_exists($newfilename); }
Her er mit svar. Ja jacobdo det ville jeg os gøre hvis jeg skulle lave sådan et script :)
Smider du også et svar jakob?
Du får lige et svar her ja!
Vi tilbyder markedets bedste kurser inden for webudvikling