仗剑江湖载酒行

指定最大宽高,按比例缩放图片

2020.01.10

这次处理图片,要限制图片的尺寸在一定的范围内,又不能改变图片的形状(保持宽高比)。

// 根据最大宽高来计算缩略图尺寸
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];
}