XXXIII. Exif 関数

導入

exif 拡張モジュールを使用すると、画像のメタデータを扱うことが可能と なります。例えば、デジタルカメラで撮影した画像ファイルから JPEGTIFF 画像のヘッダ情報を 読み込むために exif 関数を使用することができます。

要件

--enable-exif オプションを含めて PHP がコンパイル されている必要があります。exif モジュールを作成するために、追加の ライブラリは一切必要ありません。Windows ユーザは、 mbstring 拡張モジュールを有効に する必要があります。

インストール手順

exif サポートを有効にするには、PHP の configure 時に --enable-exif を指定します。

Windows ユーザは、php.iniphp_mbstring.dll および php_exif.dll の両方の DLL を有効にする 必要があります。php_mbstring.dll DLL は、必ず php_exif.dll DLL より 先に 読み込まれていなければなりません。そうなるように php.ini で設定 してください。

実行時設定

php.ini の設定により動作が変化します。

mbstring が有効になっている場合、 Exif 拡張モジュールはユーザコメントの文字エンコーディングの変換 (Unicode と JIS)を自動的に行います。この処理が行われるのは、 指定した文字セットを使用して最初にコメントをデコードする際です。 その結果は、HTTP 出力用の文字コードにエンコード されます。

表 1. Exif 設定オプション

名前デフォルト変更の可否変更履歴
exif.encode_unicode"ISO-8859-15"PHP_INI_ALLPHP 4.3.0 以降で有効です。
exif.decode_unicode_motorola"UCS-2BE"PHP_INI_ALLPHP 4.3.0 以降で有効です。
exif.decode_unicode_intel"UCS-2LE"PHP_INI_ALLPHP 4.3.0 以降で有効です。
exif.encode_jis""PHP_INI_ALLPHP 4.3.0 以降で有効です。
exif.decode_jis_motorola"JIS"PHP_INI_ALLPHP 4.3.0 以降で有効です。
exif.decode_jis_intel"JIS"PHP_INI_ALLPHP 4.3.0 以降で有効です。
PHP_INI_* 定数の詳細および定義については 付録G を参照してください。

以下に設定ディレクティブに関する 簡単な説明を示します。

exif.encode_unicode string

exif.encode_unicode は、UNICODE ユーザコメント を処理する文字セットを定義します。デフォルトは ISO-8859-15 で、 アジア以外のほとんどの国で動作します。この設定は、空白 あるいは mbstring のサポートするエンコーディングである必要があります。 空白の場合は mbstring の内部エンコーディング設定が使用されます。

exif.decode_unicode_motorola string

exif.decode_unicode_motorola は、画像の バイトオーダーがモトローラ形式(ビッグエンディアン)であった場合に Unicode のユーザコメントを扱うための内部文字セットを定義します。 この設定は空白にすることはできず、mbstring がサポートしている エンコーディングの中から指定します。デフォルトは UCS-2BE です。

exif.decode_unicode_intel string

exif.decode_unicode_intel は、画像の バイトオーダーがインテル形式(リトルエンディアン)であった場合に Unicode のユーザコメントを扱うための内部文字セットを定義します。 この設定は空白にすることはできず、mbstring がサポートしている エンコーディングの中から指定します。デフォルトは UCS-2LE です。

exif.encode_jis string

exif.encode_jis は、JIS ユーザコメントを 処理する文字セットを定義します。デフォルトは空白で、これは mbstring の内部設定を使用させることを意味します。

exif.decode_jis_motorola string

exif.decode_jis_motorola は、画像の バイトオーダーがモトローラ形式(ビッグエンディアン)であった場合に JIS のユーザコメントを扱うための内部文字セットを定義します。 この設定は空白にすることはできず、mbstring がサポートしている エンコーディングの中から指定します。デフォルトは JIS です。

exif.decode_jis_intel string

exif.decode_jis_intel は、画像の バイトオーダーがインテル形式(リトルエンディアン)であった場合に JIS のユーザコメントを扱うための内部文字セットを定義します。 この設定は空白にすることはできず、mbstring がサポートしている エンコーディングの中から指定します。デフォルトは JIS です。

リソース型

リソース型は定義されていません。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

EXIF_USE_MBSTRING (integer)

exif_imagetype() は、関連するいくつかの組み込み定数を 一覧表示します。

目次
exif_imagetype -- イメージの型を定義する
exif_read_data --  JPEG あるいは TIFF から EXIF ヘッダを読み込む
exif_tagname -- インデックスに対応するヘッダ名を取得する
exif_thumbnail -- TIFF あるいは JPEG 形式の画像に埋め込まれたサムネイルを取得する
read_exif_data -- exif_read_data() のエイリアス