こんにちは、Ryohei(@ityryohei)です!

本記事では、PHPで、画像サイズで横向き・縦向きを判定する方法をご紹介しています。画像の向きはEXIFの情報から取得することが多いですが、ここでは画像サイズで判定してみます。EXIFのOrientationとは異なり、画像が横長か縦長かしか取れませんので、予めご了承ください。

では、解説していきます。

getimagesize()で画像サイズを取得する

PHPの組み込み関数にあるgetimagesize()で画像サイズを取得します。詳細は下記でご紹介していますので、あわせてご確認いただければと思います。

getsizeimage()の引数に画像ファイルを指定することで、画像の幅や高さといった情報を取得することができます。ここでは画像の幅と高さの情報を取得します。具体的には下記のように指定します。

<?php

$image_file = 'test.jpg';
$image_size = getimagesize($image_file);

$image_width = $image_size[0];
$image_height = $image_size[1];

var_dump($image_width, $image_height);

これで指定した画像の幅と高さを取得することができました。次は取得した値を使って画像の向きを判定する処理を作成します。

画像サイズで横向き・縦向きを判定する

画像サイズで横向き・縦向きを判定します。冒頭でご説明したように方角情報は参照していないため、横長・縦長のみを判定する処理となります。

<?php

$image_file = 'test.jpg';
$image_size = getimagesize($image_file);

$image_width = $image_size[0];
$image_height = $image_size[1];

if($image_width > $image_height){
    echo '横向きの画像です';

} else if($image_width < $image_height){
    echo '縦向きの画像です';

} else {
    echo '正方形の画像です';
}

これで画像サイズで横向き・縦向きを判定することができました。

最後に

本記事の内容はスマホで撮影した縦向きの画像が横向きに表示されてしまった!というようなケースでは採用できないロジックですが、単純に画像サイズだけを確認して横向き・縦向きのみを判定したい(画像を要素に出力する等)場合は使えると思います。当てはまる場合は参考にしていただければと思います。

以上、PHPで画像サイズで横向き・縦向きを判定する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。