You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按高度缩放图片并自动匹配原宽高比?(PHP imagescale应用)

解决方案:按固定高度缩放图片并保持宽高比

嘿,这个问题其实很好解决!imagescale函数并不支持直接传入'auto'作为参数,但我们可以手动计算出对应高度下的宽度,以此来保持原始图片的宽高比。

核心思路

原始图片的宽高比是你已经计算好的$rat = $info[0] / $info[1],当我们要把高度固定为540时,只需要用这个比例乘以目标高度,就能得到保持比例的新宽度:

$newWidth = $rat * 540;

因为图片尺寸必须是整数,所以我们需要把计算结果转成整数类型(可以用强制类型转换或者round()函数,根据你的需求选择)。

修改后的完整代码片段

$ratio = 16/9; 
$rat = $info[0] / $info[1]; 
if ($rat == $ratio){ 
    $newimg = imagescale($newimg, 960, 540, IMG_BICUBIC); // 此代码可正常运行
} elseif ($rat > $ratio){ 
    // 计算符合比例的新宽度
    $newWidth = (int)($rat * 540);
    $newimg = imagescale($newimg, $newWidth, 540, IMG_BICUBIC); 
}

额外提示

如果你希望所有场景下都能按固定高度540缩放并保持比例,其实可以简化逻辑,不用分比例判断:

$targetHeight = 540;
$newWidth = (int)($info[0] / $info[1] * $targetHeight);
$newimg = imagescale($newimg, $newWidth, $targetHeight, IMG_BICUBIC);

这样不管原始图片比例是多少,都会自动计算出合适的宽度,完美保持原始比例。

内容的提问来源于stack exchange,提问作者blueSky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:28:44