Revision: 63669
Updated Code
at May 29, 2013 03:56 by ShawnG
Updated Code
function ratioResize( $image , $maxwidth , $maxheight , $forcewidth=false ){
$return = array();list( $w , $h ) = getimagesize( $image );
if($w < $maxwidth && $h < $maxheight && !$forcewidth)return array('width'=>$w,'height'=>$h,'left'=>($maxwidth-$w)/2,'top'=>($maxheight-$h)/2,'ratio'=>1);
$rw = $maxwidth/$w; $rh = $maxheight/$h; //GET HEIGHT AND WIDTH RATIO
$return['ratio'] = $rw <= $rh?$rw:$rh;
$return['height'] = round($h*($return['ratio']));
$return['width'] = round($w*($return['ratio'])); //GET CALCULATED DIMENSIONS FROM RATIO
$return['left'] = ($maxwidth - $return['width'])/2;
$return['top'] = ($maxheight - $return['height'])/2;//GET CALCULATED CENTERING PIXELS
return $return;
}
Revision: 63668
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 29, 2013 03:48 by ShawnG
Initial Code
function ratioResize( $image , $maxwidth , $maxheight , $forcewidth=false ){
list( $w , $h ) = getimagesize( $image );
if($w < $maxwidth && $h < $maxheight && !$forcewidth)return array('width'=>$w,'height'=>$h,'left'=>($maxwidth-$w)/2,'top'=>($maxheight-$h)/2,'ratio'=>1);
$rw = $maxwidth/$w; $rh = $maxheight/$h; //GET HEIGHT AND WIDTH RATIO
$return['ratio'] = $rw <= $rh?$rw:$rh;
$return['height'] = round($h*($return['ratio']));
$return['width'] = round($w*($return['ratio'])); //GET CALCULATED DIMENSIONS FROM RATIO
$return['left'] = ($maxwidth - $return['width'])/2;
$return['top'] = ($maxheight - $return['height'])/2;//GET CALCULATED CENTERING PIXELS
return $return;
}
Initial URL
Initial Description
Returns array with information like:
Input image
width 200
height 200
print_r(ratioResize('path/to/image.ext' , 100 , 50));
output:
array(
[ratio] => .5,
[height] => 50,
[width] => 50,
[left] => 25,
[top] => 25
);
Initial Title
PHP Image Ratio Width & Height, Top & Left
Initial Tags
php, resize, image
Initial Language
PHP