【PHP】画像のサイズ(縦横)や種類(MIMEタイプ)を取得する
プログラミングでは、画像の処理を行うことも多く、指定した画像のサイズ(横幅、高さ)や種類(型)などを取得したい時が多々あります。
その場合は、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関数を併用すれば簡易に画像ファイルの拡張子を決定できます。
あわせて読んでほしい!
コメント
まだコメントはありません。