簡體   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