外部から読み込んだ画像の縦横比を維持して縮小する方法
08/28
AS3, JavaScript 縦横比 No Comments
JavaScriptやActionScript3でも外部から読み込んだ画像の縦横比を維持して拡大・縮小をしたもの。今までこれにずっとつまずいていた。今、作っているものもちょっと、この縦横比を維持して縮小をしたかった。いろいろ調べてみたら、考え方が書いてあったので紹介したい。
縦横比を求めるには、縦の長さ / 横の長さ で比率が求められる。
これを横をたとえば200pxにしたいとすると・・・縦の長さを横の長さに対して求めればいいと思う。
横の長さを基準にして縦の長さを求めると
横の長さx上で求めた縦横比 = 横を200pxにしたときの縦の長さ
例)ActionScriptで記述すると
// 変数 hpw に 「高さ/横幅」 の比を取得
var hpw:Number = photoFrame._height/photoFrame._width;
// もし横幅が120より大きい場合
if (photoFrame._width>120) {
// 横幅を120にする
photoFrame._width = 120;
// そして高さもその比に合わせて変える
photoFrame._height = 120*hpw;
}
// 上の縮小をしても(しなくても)まだ高さが160より大きい場合
if (photoFrame._height>160) {
// 高さを160にする
photoFrame._height = 160;
// そして横幅もその比に合わせて変える
photoFrame._width = 160/hpw;
}
変形しないように画像を表示するときに役に立つと思う。
これだけクラスファイルにするのも手だと思う。
Twitter
RSS