getimagesize
そふぃのPHP入門 >> PHP関数リファレンス >> イメージ関数 >> getimagesize

getimagesize

解説 画像の大きさを取得する
書式 array getimagesize( string filename [, array imageinfo ] )
array getimagesize( string ファイル名 [, array 拡張情報 ] )
引数 filename ファイル名
imageinfo 拡張情報
返値 画像の大きさに関する情報

PHPマニュアル:getimagesize getimagesize()

getimagesize()関数:概略解説

getimagesize()は指定した画像ファイルの大きさに関する情報を配列として取得します。imageinfoが指定された場合は大きさに関する情報だけではなく、その他の拡張情報に関する情報も取得する事ができますが、取得できる内容は画像形式によって異なります。現在取得できるのはJPGファイルのAPPマーカーのみのようです。

getimagesize()関数:返り値解説

指定したファイルが存在しないなど、何らかの理由でイメージファイルにアクセスできない場合や、有効な画像ではない場合にはFALSEを返します。この時E_WARNINGレベルのエラーも発生させます。

成功時には画像ファイルの大きさに関する情報を配列として返します。返される情報には以下のようなものがあります。

{include file='returnval/getimagesize.tpl'}
getimagesize()関数で返される情報
キー 説明 その他
0 画像の幅 単位:ピクセル
1 画像の高さ 単位:ピクセル
2 画像の種類を示すフラグ IMAGETYPE定数に対応
例:GIF=1 JPG=2
3 <img>タグ内でそのまま使用できる文字列 height="xxx" width="xxx"
bits ビット/ピクセル PHP4.3以前ではJPEGのみ有効
channels チャンネル数 PHP4.3以前ではJPEGのみ有効
mime 画像のMINEタイプ PHP4.3以降で有効

getimagesize()関数:引数解説

filenameファイル名
画像ファイルへのパスを指定します。
imageinfo拡張情報
拡張情報を格納したい変数を指定します。

getimagesize()関数:補足解説

サポートされる画像形式は、以下の通りです。

  • GIF
  • JPG
  • PNG
  • SWF
  • SWC -------- PHP4.3.0以降
  • PSD
  • TIFF ------- PHP4.2.0以降
  • BMP
  • IFF
  • JP2 -------- PHP4.3.2以降
  • JPX -------- PHP4.3.2以降
  • JB2 -------- PHP4.3.2以降
  • JPC -------- PHP4.3.2以降
  • XBM -------- PHP4.3.2以降
  • WBMP ------- PHP4.3.2以降
  • JPEG2000 --- PHP4.3.2以降

getimagesize()関数:注意

グローバルカラーテーブルを使ったアニメーションGIFのピクセルあたりのビット数を計算する事はできないと説明されています。

いくつかの画像形式では画像を含まなかったり、複数の画像を含んだりします。そういった場合にgetimagesize()関数は画像サイズを正しく認識できず、幅と高さについては0を返します。

参考関数

  • image_type_to_mime_type() ---- 画像形式のMIMEタイプを取得する

IMAGETYPE定数

IMAGETYPE定数を紹介します。

定数名 定数値
IMAGETYPE_GIF 1
IMAGETYPE_JPEG 2
IMAGETYPE_PNG 3
IMAGETYPE_SWF 4
IMAGETYPE_PSD 5
IMAGETYPE_BMP 6
IMAGETYPE_TIFF_II 7
IMAGETYPE_TIFF_MM 8
IMAGETYPE_JPC 9
IMAGETYPE_JP2 10
IMAGETYPE_JPX 11
IMAGETYPE_JB2 12
IMAGETYPE_SWC 13
IMAGETYPE_IFF 14
IMAGETYPE_WBMP 15
IMAGETYPE_JPEG2000 9
IMAGETYPE_XBM 16

IMAGETYPE_JPEG2000IMAGETYPE_JPCのエイリアスのようです。

サンプルスクリプト

簡単な利用例

  1. <?php
  2. echo "<pre>";
  3. print_r( getimagesize( "sample.gif" ) );
  4. echo "</pre>";
  5. ?>

出力結果

Array
(
    [0] => 120
    [1] => 80
    [2] => 1
    [3] => width="120" height="80"
    [bits] => 8
    [channels] => 3
    [mime] => image/gif
)

getimagesize()で取得できる全ての情報を出力しています。

高さと幅を<img>タグ内に挿入

  1. <?php
  2. $wh = getimagesize( "sample.gif" );
  3. $logo = "<img src=\"sample.gif\" $wh[3] alt=\"サンプル画像\" />";
  4. echo $logo."<br />\n";
  5. echo "ソース : ".htmlspecialchars( $logo );
  6. ?>

出力結果

サンプル画像
ソース : <img src="sample.gif" width="120" height="80" alt="サンプル画像" />

キー:3が便利です。

参考関数

imageinfo引数使用方法

  1. <?php
  2. $wh = getimagesize("sample.jpg", $info);
  3. print_r($info);
  4. ?>