php scale down the image proportionally This article collects four code functions about using PHP to reduce image proportions. We can define the image width or height to reduce or enlarge the image width. Well, let’s see which of the four examples is suitable for you.
php tutorial to scale down images
This article collects four code functions about using PHP to reduce image proportions. We can define the image width or height to reduce or enlarge the image width. Well, let’s see which of the four examples is suitable for you.
*/
function imageresize2($width, $height, $targetw, $targeth)
{
$percentage = 1;
if (($width > $targetw) || ($height > $targeth))
{
$width_diff = $width - $targetw;
$height_diff = $height - $targeth;
if ($width_diff >= $height_diff)
{
$percentage = ($targetw / $width);
}
else
{
$percentage = ($targeth / $height);
}
}
//gets the new value and applies the percentage, then rounds the value
$width = round($width * $percentage);
$height = round($height * $percentage);
$resize[0] = $width;
$resize[1] = $height;
return $resize;
}//Method 2
if (!$max_width)
$max_width = 240;
if (!$max_height)
$max_height = 200;
$size = getimagesize($image);
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if ( ($width <= $max_width) && ($height <= $max_height) ) {
$tn_width = $width;
$tn_height = $height;
}
else if (($x_ratio * $height) < $max_height) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$src = imagecreatefrompng($image);
$dst = imagecreate($tn_width,$tn_height);
imagecopyresized($dst, $src, 0, 0, 0, 0,
$tn_width,$tn_height,$width,$height);
header("content-type: image/png");
imagepng($dst, null, -1);
imagedestroy($src);
imagedestroy($dst);//Method 3
/*
The function prototype is as follows:
Parameter description:
$oldwidth: original image width
$oldheight: original image height
$imgwidth: Reduced or enlarged image width
$imgheight: reduced or enlarged image height
Return: wwww.bKjia.c0m
Array: arraysize, where the indexes are: width and height, namely: arraysize['width'], arraysize['height']
*/
function getimgsize($oldwidth,$oldheight,$imgwidth,$imgheight)
{
//The width set by $oldwidth, the height set by $oldheight, the width of the $imgwidth image, and the height of the $imgheight image;//If the cell can fit the image, it will be displayed according to the actual size of the image;
if($imgwidth<=$oldwidth&&$imgheight<=$oldheight)
{
$arraysize=array('width'=>$imgwidth,'height'=>$imgheight);
return $arraysize;
}
else
{
$suoxiaowidth=$imgwidth-$oldwidth;
$suoxiaoheight=$imgheight-$oldheight;
$suoxiaoheightper=$suoxiaoheight/$imgheight;
$suoxiaowidthper=$suoxiaowidth/$imgwidth;
if($suoxiaoheightper>=$suoxiaowidthper)
{
//Cell height shall prevail;
$aftersuoxiaowidth=$imgwidth*(1-$suoxiaoheightper);
$arraysize=array('width'=>$aftersuoxiaowidth,'height'=>$oldheight);
return $arraysize;
}
else
{
//Cell width shall prevail;
$aftersuoxiaoheight=$imgheight*(1-$suoxiaowidthper);
$arraysize=array('width'=>$oldwidth,'height'=>$aftersuoxiaoheight);
return $arraysize;
}
}
}
?>