PR

[PHP] 画像圧縮時のサイズを計算する

以下の例はよく使うものです。毎度書くのもアレなのでメモ程度に残しておきます。

現在のX(Width)とY(Height)、そして許容する最大のXを与えると、Yをどれだけ小さくすればよいかを求めることができます。

一律に数値を入れると画像が歪んでしまいますが、こういった数式で元画像の比率を保ったまま縮小する事ができます(縦横比を維持するようなもの)。実際に縮小する際にも、表示だけ縮小させたい時(imgタグ)にも使えます。

スポンサードリンク

ただし、期待する画像は基本的に写真などです。幅が範囲内でも、あるいは縮小する値を求めても、極端に長い高さを持っていると表示が崩れます。どのように使うかにもよるでしょう。

	function _getNewImageY($img_x, $img_y, $max_x){
		if($img_x <= $max_x) return $img_y;
		$rate_y = $img_x / $max_x;
		$new_y = $img_y / $rate_y;
		return $new_y;
	}

計算は単純で、例えば x = 5184、 y = 3456  max_x = 400 を与えると、 y を 266 にすれば良いですよ、と教えてくれます。

コメント