• ベストアンサー

ある画像の縦横の算出方法について

いきなりですが、質問です。 ある画像の縦横比を保ちつつ、事前に設定した面積になる 縦横の長さを算出させる。という事をさせたいのですが、 (例えば縦100px 横250px、面積25000平方ピクセルの画像を、 縦横比そのままで、面積18000ピクセルにしたい場合の縦横を 計算) どのようなルーチンを組めば良いのか、ちょっと分かりません。 もし、効率的な組み方などあれば教えて頂けないでしょうか。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

面積比の平方根を各辺に掛ければよいと思います。 ただし、単位がピクセルであるため整数でなければならず、近似値でも結構差が出ますね・・・。 var w = 250; // 元の幅 var h = 100; // 元の高さ var square = 18000; // 伸縮後の面積 var raito = Math.sqrt(square / (w * h)); w = Math.floor(w * raito); // 整数に変換 h = Math.floor(h * raito); alert("横:" + w + ",高さ=" + h + ",面積=" + w * h); 実数で取るならMath.floorをはずしてください。

すると、全ての回答が全文表示されます。

関連するQ&A