com.nttdocomo.ui
クラス ExifData

Object
  拡張com.nttdocomo.ui.ExifData

public class ExifData
extends Object
 [iアプリオプションAPI]

Exif 属性を表すクラスです。

Exif 属性は、複数のタグの集合体です。 各タグには、 そのタグを識別するためのタグ番号が規定されており、 タグ番号と、そのタグが所属するグループ(TIFF Tag, EXIF Private Tag, GPS Info Tag, Interoperability Tag)を指定すれば、 タグの種類は一意に定まります。 さらに、タグの種類ごとに、以下の項目が規定されています。

タイプ (Type):
そのタグに格納されている値のタイプです。 整数(BYTE, SHORT, LONG, SLONG)、有理数(RATIONAL, SRATIONAL)、 ASCII、UNDEFINED が存在します。
カウント (Count):
上記「タイプ」の値が何個格納されているかを表します。 ただし、ASCII・UNDEFINED の場合は、 格納されている文字列・バイト列のバイト数(ASCII は NUL 終端を含んだバイト数)を表します。

タグに格納されている値の取得・設定をするためのメソッドは、 そのタグのタイプによって異なります。 以下に、それぞれのタイプごとに利用するメソッド、 ならびに値の解釈方法を示します。

タイプ 設定メソッド 取得メソッド 値の解釈
BYTE
(8ビット符号無し整数)
setIntegerTag() getIntegerTag() 「カウント」個の long 型の値として表します。
各 long 値が取り得る値の範囲は 0〜255 です。
SHORT
(16ビット符号無し整数)
setIntegerTag() getIntegerTag() 「カウント」個の long 型の値として表します。
各 long 値が取り得る値の範囲は 0〜65535 です。
LONG
(32ビット符号無し整数)
setIntegerTag() getIntegerTag() 「カウント」個の long 型の値として表します。
各 long 値が取る値の範囲は 0〜232-1 です。
SLONG
(32ビット符号付き整数)
setIntegerTag() getIntegerTag() 「カウント」個の long 型の値として表します。
各 long 値が取り得る値の範囲は -231〜231-1 です。
RATIONAL
(符号無し有理数)
setRationalTag() getRationalTag() 「カウント」個の long[] 型の値として表します。
long[i] (0 ≤ i < カウント) には、 長さ2の long 配列が格納されています。
long[i][0] には i 番目の値の分子が、 long[i][1] には i 番目の値の分母が、 それぞれ格納されています。
各 long 値が取り得る値の範囲は 0〜232-1 です。
SRATIONAL
(符号付き有理数)
setRationalTag() getRationalTag() 「カウント」個の long[] 型の値として表します。
long[i] (0 ≤ i < 「カウント」) には、 長さ2の long 配列が格納されています。
long[i][0] には i 番目の値の分子が、 long[i][1] には i 番目の値の分母が、 それぞれ格納されています。
各 long 値が取り得る値の範囲は -231〜231-1 です。
ASCII setAsciiTag() getAsciiTag() 長さ (「カウント」 - 1) の文字列として表します。 NUL 終端は含みません。 各文字は ASCII の範囲内です。
UNDEFINED setUndefinedTag() getUndefinedTag() 「カウント」の長さを持つバイト列として表します。

このクラスに定義されているメソッドでは、 明示的な記載が無い限り、 引数に指定された配列は全体がコピーされてメソッドに渡され、 戻り値の型が配列の場合は、内部で保持している配列のコピーが返されます。

タグの種類や、タグが所属するグループ、それぞれのタグにおけるタグ番号・ フィールド名・タイプ・カウントなどの詳細については、 「ディジタルスチルカメラ用画像ファイルフォーマット規格 Exif 2.2 (JEITA CP-3451)」を参照してください。

導入されたバージョン:
DoJa-5.0 (903i)

入れ子クラスの概要
 class ExifData.TagInfo
          enumerateTags() メソッドの戻り値に含まれるタグ情報を表す内部クラスです。
 
フィールドの概要
static int GPS_INFO_TAG
          タグが所属するグループを表す定数値で、 0th IFD GPS Info Tag であることを表します(=34853)。
static int SUPPORT_GET
          タグのサポート状況を表す定数値で、 取得可能であることを表します(=1)。
static int SUPPORT_SET
          タグのサポート状況を表す定数値で、 設定可能であることを表します(=2)。
 
コンストラクタの概要
ExifData()
           Exif 属性のオブジェクトを生成します。
 
メソッドの概要
 java.util.Enumeration enumerateTags()
           このオブジェクトに格納されている全ての Exif タグを列挙します。
 String getAsciiTag(int tagGroup, int tagID)
          ASCII 型の Exif タグについて、 指定されたタグに格納されている値を取得します。
 long[] getIntegerTag(int tagGroup, int tagID)
          整数(BYTE, SHORT, LONG, SLONG)型の Exif タグについて、 指定されたタグに格納されている値を取得します。
 long[][] getRationalTag(int tagGroup, int tagID)
          有理数(RATIONAL, SRATIONAL)型の Exif タグについて、 指定されたタグに格納されている値を取得します。
static int getSupportStatus(int tagGroup, int tagID)
          指定されたタグのサポート状況を取得します。
 byte[] getUndefinedTag(int tagGroup, int tagID)
          UNDEFINED 型の Exif タグについて、 指定されたタグに格納されている値を取得します。
 void setAsciiTag(int tagGroup, int tagID, String value)
           ASCII 型の Exif タグについて、 指定されたタグに格納する値を設定します。
 void setIntegerTag(int tagGroup, int tagID, long[] values)
           整数(BYTE, SHORT, LONG, SLONG)型の Exif タグについて、 指定されたタグに格納する値を設定します。
 void setRationalTag(int tagGroup, int tagID, long[][] rational)
           有理数(RATIONAL, SRATIONAL)型の Exif タグについて 指定されたタグに格納する値を設定します。
 void setUndefinedTag(int tagGroup, int tagID, byte[] value)
           UNDEFINED 型の Exif タグについて、 指定されたタグに格納する値を設定します。
 Location toLocation()
           この Exif 属性にもとづいた位置情報オブジェクトを生成します。
 void update(Location location)
           指定された位置情報を、この Exif 属性に反映させます。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

GPS_INFO_TAG

public static final int GPS_INFO_TAG
タグが所属するグループを表す定数値で、 0th IFD GPS Info Tag であることを表します(=34853)。

関連項目:
定数フィールド値

SUPPORT_GET

public static final int SUPPORT_GET
タグのサポート状況を表す定数値で、 取得可能であることを表します(=1)。

関連項目:
getSupportStatus(int, int), 定数フィールド値

SUPPORT_SET

public static final int SUPPORT_SET
タグのサポート状況を表す定数値で、 設定可能であることを表します(=2)。

関連項目:
getSupportStatus(int, int), 定数フィールド値
コンストラクタの詳細

ExifData

public ExifData()

Exif 属性のオブジェクトを生成します。

現実装では、生成直後には下記のタグのみが格納されています。

グループ タグ番号(フィールド名) タイプ カウント 初期値 サポート
GPS_INFO_TAG 0 (GPSVersionID) BYTE 4 {2, 2, 0, 0} 更新不可・取得のみ可

オブジェクト生成時に格納されるタグの種類は、 将来の実装で変更される可能性があります。

メソッドの詳細

getSupportStatus

public static int getSupportStatus(int tagGroup,
                                   int tagID)
指定されたタグのサポート状況を取得します。

引数 tagGroup に GPS_INFO_TAG 以外の値が指定された場合や、 引数 tagID に Exif で規定されていないタグ番号を指定した場合には、 このメソッドは 0 を返します。

パラメータ:
tagGroup - サポート状況を取得したいタグのグループを指定します。 現在の実装では GPS_INFO_TAG のみが指定可能です。
tagID - サポート状況を取得したいタグのタグ番号を指定します。
戻り値:
指定されたタグについて、 取得のみサポートされている場合は SUPPORT_GET を、 設定・取得がサポートされている場合は (SUPPORT_GET | SUPPORT_SET) を、 いずれもサポートされていない場合は 0 を、それぞれ返します。

setIntegerTag

public void setIntegerTag(int tagGroup,
                          int tagID,
                          long[] values)

整数(BYTE, SHORT, LONG, SLONG)型の Exif タグについて、 指定されたタグに格納する値を設定します。 指定されたタグについて、値の設定をサポートしていない場合、何もしません。

パラメータ:
tagGroup - 設定したいタグのグループを指定します。 現在の実装では GPS_INFO_TAG のみが指定可能です。
tagID - 設定したいタグのタグ番号を指定します。
values - 設定したいタグの値の配列を指定します。 配列の長さは、 そのタグの「カウント」の数と一致していなければなりません。 引数で指定したタグを削除するには null を指定します。
例外:
IllegalArgumentException - 指定されたタグが整数型でない場合に発生します。
IllegalArgumentException - 引数 values の長さが、指定されたタグの「カウント」 の数と一致していない場合に発生します。
IllegalArgumentException - 引数 values に格納されている値のいずれかが、指定されたタグのタイプ (BYTE, SHORT, LONG, SLONG) に収まらない場合に発生します。

getIntegerTag

public long[] getIntegerTag(int tagGroup,
                            int tagID)
整数(BYTE, SHORT, LONG, SLONG)型の Exif タグについて、 指定されたタグに格納されている値を取得します。 指定されたタグについて、値の取得をサポートしていない場合や、 タグそのものが存在しない場合には null が返されます。

パラメータ:
tagGroup - 値を取得したいタグのグループを指定します。 現在の実装では GPS_INFO_TAG のみが指定可能です。
tagID - 値を取得したいタグのタグ番号を指定します。
戻り値:
引数で指定されたタグに格納されている値 (長さ「カウント」の配列)を返します。
例外:
IllegalArgumentException - 指定されたタグが整数型でない場合に発生します。

setRationalTag

public void setRationalTag(int tagGroup,
                           int tagID,
                           long[][] rational)

有理数(RATIONAL, SRATIONAL)型の Exif タグについて 指定されたタグに格納する値を設定します。 指定されたタグについて、値の設定をサポートしていない場合、何もしません。

引数 rational には、設定したい値(有理数)を、 long[2] で表した分数の配列で指定します。 i 番目の値の分子を rational[i][0] に、 分母を rational[i][1] に、それぞれ格納します。 rational[i] の長さは、任意の i において、 2以上でなければなりません。 rational[i] の第2要素以降の値は無視されます。

パラメータ:
tagGroup - 設定したいタグのグループを指定します。 現在の実装では GPS_INFO_TAG のみが指定可能です。
tagID - 設定したいタグのタグ番号を指定します。
rational - 設定したいタグの値を、分数の配列で指定します。 rational の長さは、そのタグの「カウント」 の数と一致していなければなりません。 引数で指定したタグを削除するには null を指定します。
例外:
NullPointerException - 引数 rational について、 rational[i] が null となるような整数 i が存在する場合に発生します。
IllegalArgumentException - 指定されたタグが有理数型でない場合に発生します。
IllegalArgumentException - 引数 rational の長さが、指定されたタグの「カウント」 の数と一致していない場合に発生します。
IllegalArgumentExcttdocomo/ui/ExifData.html#GPS_INFO_TAG">GPS_INFO_TAG 縺ョ縺ソ縺梧欠螳壼庄閭ス縺ァ縺吶