【PHP】画像のサイズ(縦横)や種類(MIMEタイプ)を取得する

公開日:
更新日:
カテゴリー: PHP

プログラミングでは、画像の処理を行うことも多く、指定した画像のサイズ(横幅、高さ)や種類(型)などを取得したい時が多々あります。

その場合は、getimagesize関数を使えば万事解決です。

getimagesize関数

画像のサイズなどの情報は、getimagesize関数を使うことで簡単に取得できます(GD画像ライブラリは不必要)。

getimagesize(ここに画像のURLやパス);

この関数は、画像の横幅、高さ、型(「image/jpeg」など)、ビット数などの情報を取得できます。オプションとして第2引数を利用すると、画像ファイルから拡張情報を取得できます。詳しくはマニュアルを参照してください。

戻り値

getimagesize関数の戻り値は配列となっており、以下の情報が返ってきます。

Array
(
    [0] => 827 //横幅
    [1] => 1169 //高さ
    [2] => 2 //IMAGETYPE_XXX 定数のひとつで画像の形式を表す
    [3] => width="827" height="1169" //IMGタグに直接利用可能
    [bits] => 8 //色のビット数
    [channels] => 4 //RGB 画像の場合は3、CMYK 画像の場合は4
    [mime] => image/jpeg //画像のMIMEタイプ(HTTP Content-type ヘッダを転送するために使用できる)
)

なお、画像の形式によっては「channels」「bits」は含まれないことがあります。

listで戻り値を各種変数に代入する

getimagesize関数の戻り値は、

$image_info = getimagesize(ここに画像のURLやパス);
echo $image_info["0"]; //横幅の出力

のようにして取り出せますが、list関数(言語構造)を使用すると戻り値(横幅、高さ、画像形式、IMGタグ用のサイズ)を各種変数に代入することができ、簡易に取得した値を使用することができます。

list($width, $height, $type, $attr) = getimagesize(ここに画像のURLやパス);

このようにすれば、「$width」には画像の横幅、「$height」には画像の高さ、「$type」には画像の形式、「$attr」にはIMGタグ用のサイズをそれぞれ代入できます(「bits」「channels」「mime」はこの方法では取り出せません)。

なお、画像ファイルの種類(拡張子やMIMEタイプ)を取得する方法の最後に記載しているプログラムのように、getimagesize関数とswitch関数を併用すれば簡易に画像ファイルの拡張子を決定できます。

 

あわせて読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント