関数・クラス解説

getimagesize

version:PHP 4, PHP 5, PHP 7 (公式)

画像の大きさを取得する

公式リファレンス

書式

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

説明

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

警告

この関数は、filename が適切な画像ファイルであることを想定しています。 画像以外のファイルを渡してもそれを画像だと判断してしまい、関数の処理は成功するでしょう。 しかし、配列には意味のない値が含まれる場合があります。

getimagesize() を使って、そのファイルが画像であるかどうかを確かめることはできません。 そのようなことをしたい場合は、そのために用意されたソリューション (Fileinfo 拡張モジュールなど) を使いましょう。

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

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

注意: アイコンに関する情報は、ビットレートが最大のアイコンから取得します。

注意: GIF 画像はひとつ以上のフレームからなります。 個々のフレームは画像の一部のみを占めます。 getimagesize() が報告する画像のサイズは、 (logical screen descriptor から読み込まれた) 全部のサイズです。

パラメータ

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

返値

最大 7 つの要素からなる配列を返します。画像の形式によっては、 channels や bits は含まれないことがあります。 0 番目および 1 番目の要素は、それぞれ画像の幅と高さを表します。

注意: 形式によっては、画像を含まないものや複数の画像を含むものがあります。 これらの場合、getimagesize() は画像のサイズを適切に決定することができません。このような場合、 getimagesize() が返す幅と高さはいずれもゼロとなります。
2 番目の要素は IMAGETYPE_XXX constants 定数のひとつで、 画像の形式を表します。 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 は個々の色のビット数です。 画像の形式によっては、channels や bits の値の存在は混乱の元です。 たとえば、GIF は常に 1 ピクセルあたり 3 チャンネルを使用しますが、グローバルカラーテーブルを使ったアニメーション GIF のピクセルあたりのビット数を計算することはできません。 失敗した場合には FALSE を返します。

エラー

もし filename のイメージにアクセスできない場合、 getimagesize() は FALSE を返し、E_WARNING レベルのエラーを発生させます。 読み込み時にエラーが発生した場合は、 getimagesize() は E_NOTICE レベルのエラーを発生させます。

注意

注意: この関数は、GD 画像ライブラリを必要としません。

更新履歴

バージョン 説明
7.1.0 WebP に対応しました。

サンプル

例2 getimagesize() の例

list($width, $height, $type, $attr) = getimagesize("img/flag.jpg"); echo "";

例3 getimagesize (URL)

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

例4 IPTC を返す getimagesize()

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

参考

  • image_type_to_mime_type() - getimagesize, exif_read_data, exif_thumbnail, exif_imagetypeから返される 画像形式のMIMEタイプを取得する
  • exif_imagetype() - イメージの型を定義する
  • exif_read_data() - 画像ファイルから EXIF ヘッダを読み込む
  • exif_thumbnail() - 画像に埋め込まれたサムネイルを取得する
  • imagesx() - 画像の幅を取得する
  • imagesy() - 画像の高さを取得する
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール