getimagesize
| 解説 | 画像の大きさを取得する |
|---|---|
| 書式 | array getimagesize( string filename [, array imageinfo ] ) |
array getimagesize( string ファイル名 [, array 拡張情報 ] ) |
|
| 引数 |
filename
ファイル名
|
imageinfo
拡張情報
|
|
| 返値 | 画像の大きさに関する情報 |
getimagesize()は指定した画像ファイルの大きさに関する情報を配列として取得します。imageinfoが指定された場合は大きさに関する情報だけではなく、その他の拡張情報に関する情報も取得する事ができますが、取得できる内容は画像形式によって異なります。現在取得できるのはJPGファイルのAPPマーカーのみのようです。
指定したファイルが存在しないなど、何らかの理由でイメージファイルにアクセスできない場合や、有効な画像ではない場合にはFALSEを返します。この時E_WARNINGレベルのエラーも発生させます。
成功時には画像ファイルの大きさに関する情報を配列として返します。返される情報には以下のようなものがあります。
{include file='returnval/getimagesize.tpl'}| キー | 説明 | その他 |
|---|---|---|
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以降で有効 |
filenameファイル名画像ファイルへのパスを指定します。
imageinfo拡張情報拡張情報を格納したい変数を指定します。
サポートされる画像形式は、以下の通りです。
- 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以降
※グローバルカラーテーブルを使ったアニメーション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_JPEG2000はIMAGETYPE_JPCのエイリアスのようです。
サンプルスクリプト
簡単な利用例
- echo "<pre>";
- print_r( getimagesize( "sample.gif" ) );
- echo "</pre>";
出力結果
Array
(
[0] => 120
[1] => 80
[2] => 1
[3] => width="120" height="80"
[bits] => 8
[channels] => 3
[mime] => image/gif
)
getimagesize()で取得できる全ての情報を出力しています。
高さと幅を<img>タグ内に挿入
- $wh = getimagesize( "sample.gif" );
- $logo = "<img src=\"sample.gif\" $wh[3] alt=\"サンプル画像\" />";
- echo $logo."<br />\n";
- echo "ソース : ".htmlspecialchars( $logo );
出力結果

ソース : <img src="sample.gif" width="120" height="80" alt="サンプル画像" />
キー:3が便利です。
参考関数
- htmlspecialchars() ---- 特殊文字をHTMLエンティティに変換する
imageinfo引数使用方法
- $wh = getimagesize("sample.jpg", $info);
- print_r($info);





