PHP マニュアル
前のページ |  | 次のページ

# getimagesize

(PHP 3, PHP 4, PHP 5)

getimagesize -- 画像の大きさを取得する

## 説明

array getimagesize ( string filename [, array &imageinfo] )

getimagesize() 関数は任意の画像ファイルの大きさを決定し、 ファイルの型と高さ/幅を表す文字列を返します。これらは HTML の <IMG> タグや HTTP の content type として使用できます。

getimagesize() は、 `imageinfo` パラメータで追加情報を返します。

> 注意: JPC と JP2 は異なるビット深度のコンポーネントを含むことが可能なことに 注意してください。この場合 "bits" に対する値は、 最も大きい深度になります。また、JP2 ファイルは 複数の JPEG 2000 コードストリームを含む場合があります。この場合、 getimagesize() はファイルのルートから 最初に遭遇するコードストリームに対する値を返します。

## パラメータ

`filename`

`imageinfo`

  オプションのパラメータで、 画像ファイルから何らかの拡張情報を引き出すことが可能です。 現在、この変数にはJPGファイルについて 異なった複数のAPPマーカーが連想配列として返されます。いくつかのプログラムは、 これらのAPPマーカーを画像の中の埋込テキストの情報として使用します。 最も一般的な例は、マーカーAPPl3に埋込IPTC http://www.iptc.org/情報が返されることです。 バイナリ形式のマーカーAPP13を読むことができるよう処理するために iptcparse() 関数を使用することができます。

## 返り値

5 つの要素からなる配列を返します。

0 番目および 1 番目の要素は、それぞれ画像の幅と高さを表します。

> 注意: 形式によっては、画像を含まないものや複数の画像を含むものがあります。 これらの場合、getimagesize() は画像のサイズを適切に決定することができません。このような場合、 getimagesize() が返す幅と高さはいずれもゼロとなります。

2 番目の要素は `IMAGETYPE_XXX` 定数のひとつで、 画像の形式を表します。

3 番目の要素はIMGタグで直接利用できる文字列 `height="yyy" width="xxx"` です。

`mime`は画像のMIMEタイプに一致します。この情報は 画像とともに正しい HTTP `Content-type` ヘッダを転送するために使用できます。

例 1. getimagesize() および MIME 型

`<?php $size = getimagesize($filename); $fp = fopen($filename, "rb"); if ($size && $fp) { header("Content-type: {$size['mime']}"); fpassthru($fp); exit; } else { // エラー } ?>`

`channels` は RGB 画像の場合に 3、CMYK 画像の場合に 4 です。 `bits`はカラーの数です。 しかし、これらの値の存在はちょっと 混乱気味です。例えば、GIFは常に1ピクセルあたり3チャンネル を使用しますが、グローバルカラーテーブルを使ったアニメーションGIFの ピクセルあたりのビット数を計算することはできません。

失敗した場合には `FALSE` を返します。

## エラー / 例外

もし `filename` のイメージにアクセスできない場合、 もしくは有効な画像でない場合、getimagesize() は `FALSE` を返し、`E_WARNING` レベルのエラーを発生させます。

## 変更履歴

バージョン | 説明
--- | ---
4.3.2 | JPC, JP2, JPX, JB2, XBM, WBMP のサポートが追加されました。
4.3.2 | `imageinfo` パラメータで JPEG 2000 のサポートが追加されました。
4.3.0 | `bits` と `channels` が他の画像形式でも使用できるようになりました。
4.3.0 | `mime` が追加されました。
4.3.0 | SWC のサポートが追加されました。
4.2.0 | TIFF のサポートが追加されました。
4.0.5 | URL のサポートが追加されました。

## 例

例 2. getimagesize (ファイル)

`<?php list($width, $height, $type, $attr) = getimagesize("img/flag.jpg"); echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />"; ?>`

例 3. getimagesize (URL)

`<?php $size = getimagesize("http://www.example.com/gifs/logo.gif"); // ファイル名にスペースが含まれる場合は適切にエンコードしてください $size = getimagesize("http://www.example.com/gifs/lo%20go.gif"); ?>`

例 4. IPTC を返す getimagesize()

`<?php $size = getimagesize("testimg.jpg", $info); if (isset($info["APP13"])) { $iptc = iptcparse($info["APP13"]); var_dump($iptc); } ?>`

## 注意

> 注意: getimagesize() 関数は GD 画像ライブラリを必要としません。

## 参考

image_type_to_mime_type()
exif_imagetype()
exif_read_data()
exif_thumbnail()

前のページ | ホーム | 次のページ
gd_info | 上に戻る | image_type_to_extension