Vil ikke auto-resize store billeder?
Hej,Jeg har en form hvor jeg uploader billede, og efterfølgende auto-resizer dem. Det virker fint med små billeder, men når jeg prøver at uploade et billede på 2MB så uploader den det store, men vil efterfølgende ikke resize det mindre.
Har prøvet at sætte php_value memory_limit 16M i htaccess, og også at ændre det i PHP ini_set('memory_limit', '16M'); - men det gør bare ingen forskel! :S
--------------------------------------------------------------------------------------------------------------------------------
Min Resize kode ser ud som følgende:
<?php
function imageResize( $filename, $newfilename, $maxw, $maxh, $quality=99 )
{
$ext = strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
switch($ext)
{
case 'jpeg':
case 'jpe':
case 'jpg':
$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 );
if($oh > $maxh || $ow > $maxw)
{
$wscale = $maxw / $ow;
$hscale = $maxh / $oh;
$scale = min( $hscale, $wscale );
$nw = round( $ow * $scale, 0 );
$nh = round( $oh * $scale, 0 );
} else {
$nh = $oh;
$nw = $ow;
}
$dstim = imagecreatetruecolor( $nw, $nh );
imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
switch($ext)
{
case 'jpeg':
case 'jpe':
case 'jpg':
imagejpeg( $dstim, $newfilename, $quality );
break;
case 'gif':
imagegif( $dstim, $newfilename );
break;
case 'png':
imagesavealpha($dstim, true);
$trans_colour = imagecolorallocatealpha($dstim, 0, 0, 0, 127);
imagefill($dstim, 0, 0, $trans_colour);
$png_q = floor( abs( $quality / 10 - 9.9 ) );
imagepng( $dstim, $newfilename, $png_q );
break;
default:
return false;
}
imagedestroy( $dstim );
imagedestroy( $srcim );
return true;
}
?>
--------------------------------------------------------------------------------------------------------------------------------
På forhånd rigtig mange tak!
