4

私はこれの公式を見つけることができないとは信じられません。SLIRというPHPスクリプトを使用して画像のサイズを変更しています。スクリプトは、トリミングのアスペクト比を指定するように要求します。ユーザーにこれらの値を入力させるフォームで指定されている画像の幅と高さに基づいてアスペクト比を取得したい。たとえば、ユーザーが1024x768の画像を入力すると、アスペクト比が取得されます。 4:3の。私の人生では、w、hを知っていることに基づいてアスペクト比の値を取得し、アスペクト比を変数にプラグインするために使用できるPHPまたはJavascriptの式の例を見つけることができません。

4

4 に答える 4

10

高さ、幅のいずれかを取得できる場合は、不足している幅の高さを計算できます。

元の幅 * 新しい高さ / 元の高さ = 新しい幅;

元の高さ * 新しい幅 / 元の幅 = 新しい高さ;

または、単に比率が必要な場合:

元の幅 / 元の高さ = 比率

于 2011-11-07T23:19:29.570 に答える
7

縦横比を取得するには、たとえば分数のように幅と高さを単純化します。

1024      4
----  =  ---
768       3

PHPコード:

function gcd($a, $b)
{
    if ($a == 0 || $b == 0)
        return abs( max(abs($a), abs($b)) );

    $r = $a % $b;
    return ($r != 0) ?
        gcd($b, $r) :
        abs($b);
}

  $gcd=gcd(1024,768);

  echo "Aspect ratio = ". (1024/$gcd) . ":" . (768/$gcd);
于 2011-11-08T00:06:18.037 に答える
2

なんらかの計算を行う必要はありません。

アスペクト比と書いてあるからといって、一般的に使用される限られた比率のセットの 1 つでなければならないという意味ではありません。コロンで区切られた数値の任意のペアを指定できます。

SLIR 使用ガイドからの引用:

たとえば、幅 150 ピクセル、高さ 100 ピクセルのイメージを正確に作成するには、次のようにします。

<img src="/slir/w150-h100-c150:100/path/to/image.jpg" alt="Don't forget your alt text" /> 

または、より簡潔に:

<img src="/slir/w150-h100-c15:10/path/to/image.jpg" alt="Don't forget your alt text" />

彼らはそれをさらに に減らすことを気にしなかったことに注意してくださいc3:2

そのため、ユーザーが入力した値をそのまま使用してください: 1024:768.

簡潔にしたい場合は、幅と高さの最大公約数を計算し、それで両方を割ります。1024:768それはあなたのダウンを に減らします4:3

于 2011-11-08T00:14:13.890 に答える