这次处理图片,要限制图片的尺寸在一定的范围内,又不能改变图片的形状(保持宽高比)。
// 根据最大宽高来计算缩略图尺寸
function scaling_size($width, $height, $max = 1024)
{
$maxWidth = $maxHeight = $max;
// 缩略图最大宽度与最大高度比
$maxRatio = $maxWidth / $maxHeight;
// 原图宽高比
$ratio = $width / $height;
if ($ratio / $maxRatio >= 1) {
$newWidth = $maxWidth;
$newHeight = $maxWidth / $ratio;
} else {
$newHeight = $maxHeight;
$newWidth = $maxHeight * $ratio;
}
return [(int) $newWidth, (int) $newHeight];
}