繁体   English   中英

计算正确减少比例的照片尺寸在php中的宽度和高度?

[英]Calculate correct reduced in proportion photo size in width and height in php?

我有2个有关我要导入的照片的宽度,高度和变量。(我可以使用imagesx等,但是我要成批导入,它花费的时间太长了)

例如..

$w = 720;
$h = 540;

如果我说最大宽度为180px,我知道正确的高度应该为135px(在标准风景照片上),那么如何为照片设置正确的高度。 但是我给出的起始宽度和高度将根据照片而变化。

保持图像成比例我需要做哪些计算才能锻炼减小的宽度和高度?

最终结果将以像素为单位,因此不能有任何小数位。

(我实际上不需要调整照片的大小,只需计算大小即可。)

提前致谢 :)

这是@fire答案的javascript版本

scaleDimensions : function(orig_width, orig_height, max_width, max_height) {
    if (orig_width < max_width && orig_height < max_height) {
        return [orig_width, orig_height];
    }

    var ratiow = max_width / orig_width;
    var ratioh = max_height / orig_height;
    var ratio = Math.min(ratiow, ratioh);
    var width = (ratio * orig_width).toFixed(0);
    var height = (ratio * orig_height).toFixed(0);
    return [width, height];
}

这是我使用的一个:

function scaleDimensions($orig_width, $orig_height, $max_width, $max_height) {
    if ($orig_width < $max_width && $orig_height < $max_height) {
        return array($orig_width, $orig_height);
    }

    $ratiow = $max_width / $orig_width;
    $ratioh = $max_height / $orig_height;
    $ratio = min($ratiow, $ratioh);
    $width = intval($ratio * $orig_width);
    $height = intval($ratio * $orig_height);
    return array($width, $height);
}

用法:

list($width, $height) = scaleDimensions($w, $h, 180, 135);
720x = 540 * 180

这是一个简单的交叉乘法规则。 然后四舍五入数字以除去小数部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM