- java.lang.Object
-
- javax.imageio.plugins.tiff.TIFFField
-
- すべての実装されたインタフェース:
Cloneable
public final class TIFFField extends Object implements Cloneable
TIFF 6.0イメージ・ファイル・ディレクトリのフィールドを表すクラスです。TIFFイメージ・ファイル・ディレクトリ(IFD)のフィールドは、同じデータ型の値のシーケンスを伴うタグ番号として定義されます。 TIFF 6.0では12タイプのデータ型が定義されています。13番目の型
IFD
は、TIFF仕様補足1のTIFFテクニカル・ノート1で定義されています。 これらのTIFFデータ型はJava定数によって参照され、Java言語のデータ型と型名に内部的に次のようにマップされます:TIFFデータ型からJavaデータ型へのマッピング TIFFデータ型 Java定数 Javaデータ型 Javaの型名 BYTE
TIFFTag.TIFF_BYTE
byte
"Byte"
ASCII
TIFFTag.TIFF_ASCII
String
"Ascii"
SHORT
TIFFTag.TIFF_SHORT
char
"Short"
LONG
TIFFTag.TIFF_LONG
long
"Long"
RATIONAL
TIFFTag.TIFF_RATIONAL
long[2]
{numerator, denominator}"Rational"
SBYTE
TIFFTag.TIFF_SBYTE
byte
"SByte"
UNDEFINED
TIFFTag.TIFF_UNDEFINED
byte
"Undefined"
SSHORT
TIFFTag.TIFF_SSHORT
short
"SShort"
SLONG
TIFFTag.TIFF_SLONG
int
"SLong"
SRATIONAL
TIFFTag.TIFF_SRATIONAL
int[2]
{numerator, denominator}"SRational"
FLOAT
TIFFTag.TIFF_FLOAT
float
"Float"
DOUBLE
TIFFTag.TIFF_DOUBLE
double
"Double"
IFD
TIFFTag.TIFF_IFD_POINTER
long
"IFDPointer"
- 導入されたバージョン:
- 9
- 関連項目:
TIFFDirectory
,TIFFTag
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 TIFFField(TIFFTag tag, int type, int count)
createArrayForType()
を使用してデータ配列を構築し、指定されたパラメータと作成された配列でTIFFField(TIFFTag,int,int,Object)
を呼び出します。TIFFField(TIFFTag tag, int type, int count, Object data)
任意のデータを持つTIFFField
を構築します。TIFFField(TIFFTag tag, int type, long offset, TIFFDirectory dir)
IFDのオフセットと内容を持つTIFFField
を構築します。TIFFField(TIFFTag tag, long value)
単一の負の整数値を持つTIFFField
を構築します。
-
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 TIFFField
clone()
フィールドとそこに含まれるすべての情報をクローンします。static Object
createArrayForType(int dataType, int count)
指定されたデータ型に適した配列を作成します。static TIFFField
createFromMetadataNode(TIFFTagSet tagSet, Node node)
TIFFネイティブ・イメージ・メタデータ・ノードからTIFFField
を作成します。byte[]
getAsBytes()
byte
の未解釈の配列としてデータを返します。char[]
getAsChars()
TIFFTag.TIFF_SHORT
データをchar
s (符号なし16ビット整数)の配列として返します。double
getAsDouble(int index)
任意の形式のデータをdouble
として返します。double[]
getAsDoubles()
TIFFTag.TIFF_DOUBLE
データをdouble
s (64ビット浮動小数点値)の配列として返します。float
getAsFloat(int index)
任意の形式のデータをfloat
として返します。float[]
getAsFloats()
TIFFTag.TIFF_FLOAT
データをfloat
s (32ビット浮動小数点値)の配列として返します。int
getAsInt(int index)
任意の形式のデータをint
として返します。int[]
getAsInts()
TIFFTag.TIFF_SLONG
データをint
s (符号付き32ビット整数)の配列として返します。long
getAsLong(int index)
任意の形式のデータをlong
として返します。long[]
getAsLongs()
TIFFTag.TIFF_LONG
またはTIFF_IFD_POINTER
データをlong
s (符号付き64ビット整数)の配列として返します。Node
getAsNativeNode()
TIFFField
を、"TIFFField"
または"TIFFIFD"
という名前のノードとして返します(TIFFネイティブ・イメージ・メタデータ仕様で説明されています)。long[]
getAsRational(int index)
TIFFTag.TIFF_RATIONALデータ・アイテムをintの2要素配列として返します。long[][]
getAsRationals()
TIFFTag.TIFF_RATIONAL
データをlong
の2要素配列の配列として返します。short[]
getAsShorts()
TIFFTag.TIFF_SSHORT
データをshort
s (符号付き16ビット整数)の配列として返します。int[]
getAsSRational(int index)
TIFFTag.TIFF_SRATIONAL
データ・アイテムをint
の2要素配列として返します。int[][]
getAsSRationals()
TIFFTag.TIFF_SRATIONAL
データをint
の2要素配列の配列として返します。String
getAsString(int index)
TIFFTag.TIFF_ASCII
の値をString
として返します。int
getCount()
フィールドに存在するデータ・アイテムの数を返します。Object
getData()
フィールドに関連付けられたデータ・オブジェクトへの参照を返します。TIFFDirectory
getDirectory()
利用可能であれば、関連するTIFFDirectory
を返します。TIFFTag
getTag()
このフィールドに関連付けられたタグを取得します。int
getTagNumber()
[0,65535]
の範囲のタグ番号を取得します。int
getType()
フィールドに格納されているデータの型を返します。static int
getTypeByName(String typeName)
指定されたデータ型名に対応するデータ型定数を返します。static String
getTypeName(int dataType)
指定されたデータ型定数の名前を返します。String
getValueAsString(int index)
人間が判読可能なバージョンのデータ・アイテムを含むString
を返します。boolean
hasDirectory()
フィールドにTIFFDirectory
があるかどうかを返します。boolean
isIntegral()
フィールドに関連付けられた値が整数データ型であるかどうかを示します。
-
-
-
コンストラクタの詳細
-
TIFFField
public TIFFField(TIFFTag tag, int type, int count, Object data)
任意のデータを持つTIFFField
を構築します。type
パラメータは、tag.isDataTypeOK()
がtrue
を返す値でなければなりません。data
パラメータは、TIFFフィールドの型に適したJava型の配列でなければなりません。TIFFField
の値(data)は、その値に必要なバイト数に関係なく、常に実際のフィールド値になります。 これは、フィールドに対応するTIFF 「IFDエントリ」が、実際に値(後者は、値が4バイトに収まる場合にのみ発生)ではなくフィールドの値へのオフセットを実際に含んでいる可能性があるにもかかわらず、このケースです。 つまり、フィールドの値は既にTIFFストリームから読み込まれています。 (フィールドが非ベースラインIFDの内容を表すときは、この場合の例外が発生することがあります。 その場合、データはIFDへのオフセットを含むlong[]
になり、getDirectory()
によって返されるTIFFDirectory
はその内容になります。)- パラメータ:
tag
- このフィールドに関連付けられるタグ。type
-TIFFTag.TIFF_*
定数の1つ.TIFFストリームに書き込まれたフィールドのデータ型を示します。count
- データ値の数。data
- フィールドの実際のデータ内容。- 例外:
NullPointerException
-tag == null
の場合。IllegalArgumentException
-type
がTIFFTag.TIFF_*
データ型定数の1つでない場合。IllegalArgumentException
-type
が、指定されたTIFFTag
の許容できないデータ型である場合。IllegalArgumentException
-count < 0
の場合。IllegalArgumentException
-count < 1
とtype
がTIFF_RATIONAL
またはTIFF_SRATIONAL
の場合。IllegalArgumentException
-count != 1
とtype
がTIFF_IFD_POINTER
の場合。NullPointerException
-data == null
の場合。IllegalArgumentException
-data
が、指定された型と互換性のないクラスのインスタンスである場合。IllegalArgumentException
- データ配列のサイズが間違っている場合。IllegalArgumentException
- データ配列の型がTIFF_LONG
、TIFF_RATIONAL
、またはTIFF_IFD_POINTER
であり、いずれかの要素が負であるか0xffffffff
より大きい場合。
-
TIFFField
public TIFFField(TIFFTag tag, int type, int count)
createArrayForType()
を使用してデータ配列を構築し、指定されたパラメータと作成された配列でTIFFField(TIFFTag,int,int,Object)
を呼び出します。- パラメータ:
tag
- このフィールドに関連付けられるタグ。type
-TIFFTag.TIFF_*
定数の1つ.TIFFストリームに書き込まれたフィールドのデータ型を示します。count
- データ値の数。- 例外:
NullPointerException
-tag == null
の場合。IllegalArgumentException
-type
がTIFFTag.TIFF_*
データ型定数の1つでない場合。IllegalArgumentException
-type
が、指定されたTIFFTag
の許容できないデータ型である場合。IllegalArgumentException
-count < 0
の場合。IllegalArgumentException
-count < 1
とtype
がTIFF_RATIONAL
またはTIFF_SRATIONAL
の場合。IllegalArgumentException
-count != 1
とtype
がTIFF_IFD_POINTER
の場合。- 関連項目:
TIFFField(TIFFTag,int,int,Object)
-
TIFFField
public TIFFField(TIFFTag tag, long value)
単一の負の整数値を持つTIFFField
を構築します。value
が[0,0xffff]
の場合、フィールドの型はTIFF_SHORT
、value
が[0x10000,0xffffffff]
の場合はTIFF_LONG
と入力します。 フィールドのカウントは1になります。- パラメータ:
tag
- このフィールドに関連付けるタグ。value
- このフィールドに関連付ける値。- 例外:
NullPointerException
-tag == null
の場合。IllegalArgumentException
-value
が[0,0xffffffff]
にない場合。IllegalArgumentException
-value
が[0,0xffff]
にあり、TIFF_SHORT
がTIFFTag
のために受け入れられない型である場合、またはvalue
が[0x10000,0xffffffff]
にあり、TIFF_LONG
がTIFFTag
のために受け入れがたい型である場合。
-
TIFFField
public TIFFField(TIFFTag tag, int type, long offset, TIFFDirectory dir)
IFDのオフセットと内容を持つTIFFField
を構築します。 オフセットは、このフィールドのデータとしてlong[] {offset}
として保存されます。 ディレクトリはクローンされません。 フィールドのカウントは1になります。- パラメータ:
tag
- このフィールドに関連付けられるタグ。type
- 定数TIFFTag.TIFF_LONG
またはTIFFTag.TIFF_IFD_POINTER
の1つ。offset
- IFDオフセット。dir
- ディレクトリ。- 例外:
NullPointerException
-tag == null
の場合。IllegalArgumentException
-type
が、指定されたTIFFTag
の許容できないデータ型である場合。IllegalArgumentException
-type
がTIFFTag.TIFF_LONG
でもTIFFTag.TIFF_IFD_POINTER
でもない場合。IllegalArgumentException
-offset <= 0
の場合。NullPointerException
-dir == null
の場合。- 関連項目:
TIFFField(TIFFTag,int,int,Object)
-
-
メソッドの詳細
-
createFromMetadataNode
public static TIFFField createFromMetadataNode(TIFFTagSet tagSet, Node node)
TIFFネイティブ・イメージ・メタデータ・ノードからTIFFField
を作成します。 ノードの"number"
属性の値がtagSet
に見つからない場合、名前TIFFTag.UNKNOWN_TAG_NAME
を持つ新しいTIFFTag
が作成され、フィールドに割り当てられます。- パラメータ:
tagSet
- フィールドのTIFFTag
が属するTIFFTagSet
。node
- ネイティブTIFFイメージ・メタデータTIFFField
ノード。- 戻り値:
- 新しい
TIFFField
。 - 例外:
IllegalArgumentException
-Node
パラメータの内容が「TIFFネイティブ・イメージ・メタデータ・フォーマット仕様」によって定義されたTIFFField
要素構造に従わない場合、またはノード属性とデータの組み合わせがTIFFField(TIFFTag,int,int,Object)
コンストラクタ仕様に従って合法でない場合。 このような例外に対しては、原因が設定される可能性があります。
-
getTag
public TIFFTag getTag()
このフィールドに関連付けられたタグを取得します。- 戻り値:
- 関連する
TIFFTag
。
-
getTagNumber
public int getTagNumber()
[0,65535]
の範囲のタグ番号を取得します。- 戻り値:
- タグ番号。
-
getType
public int getType()
フィールドに格納されているデータの型を返します。 TIFF 6.0ストリームの場合、値はTIFFTag.TIFF_*
定数の1つと等しくなります。 TIFFの今後の改訂版では、より高い値が可能です。- 戻り値:
- フィールド値のデータ型。
-
getTypeName
public static String getTypeName(int dataType)
指定されたデータ型定数の名前を返します。- パラメータ:
dataType
-TIFFTag.TIFF_*
定数の1つ.TIFFストリームに書き込まれたフィールドのデータ型を示します。- 戻り値:
- 指定された型定数に対応する型名。
- 例外:
IllegalArgumentException
-dataType
がTIFFTag.TIFF_*
データ型定数の1つでない場合。
-
getTypeByName
public static int getTypeByName(String typeName)
指定されたデータ型名に対応するデータ型定数を返します。 名前が不明の場合は-1
が返されます。- パラメータ:
typeName
- 型名です。- 戻り値:
- 名前が認識されない場合は、
TIFFTag.TIFF_*
定数または-1
の1つ。
-
createArrayForType
public static Object createArrayForType(int dataType, int count)
指定されたデータ型に適した配列を作成します。- パラメータ:
dataType
-TIFFTag.TIFF_*
データ型定数の1つ。count
- 配列内の値の数。- 戻り値:
- 指定されたデータ型に適した配列。
- 例外:
IllegalArgumentException
-dataType
がTIFFTag.TIFF_*
データ型定数の1つでない場合。IllegalArgumentException
-count < 0
の場合。IllegalArgumentException
-count < 1
とtype
がTIFF_RATIONAL
またはTIFF_SRATIONAL
の場合。IllegalArgumentException
-count != 1
とtype
がTIFF_IFD_POINTER
の場合。
-
getAsNativeNode
public Node getAsNativeNode()
TIFFField
を、"TIFFField"
または"TIFFIFD"
という名前のノードとして返します(TIFFネイティブ・イメージ・メタデータ仕様で説明されています)。hasDirectory()
がtrue
を返し、フィールド型がTIFFTag.TIFF_LONG
またはTIFFTag.TIFF_IFD_POINTER
の場合にのみ、ノードの名前は"TIFFIFD"
になります。- 戻り値:
"TIFFField"
または"TIFFIFD"
と名付けられたNode
。
-
isIntegral
public boolean isIntegral()
フィールドに関連付けられた値が整数データ型であるかどうかを示します。- 戻り値:
- フィールド型が整数かどうか。
-
getCount
public int getCount()
フィールドに存在するデータ・アイテムの数を返します。TIFFTag.TIFF_ASCII
フィールドの場合、返される値は、ファイル表現のようなデータの合計長ではなく、String
の数です。- 戻り値:
- フィールドに存在するデータ・アイテムの数。
-
getData
public Object getData()
フィールドに関連付けられたデータ・オブジェクトへの参照を返します。- 戻り値:
- フィールドのデータ・オブジェクト。
-
getAsBytes
public byte[] getAsBytes()
byte
の未解釈の配列としてデータを返します。 フィールドの型は、TIFFTag.TIFF_BYTE
、TIFF_SBYTE
、またはTIFF_UNDEFINED
のいずれかでなければなりません。TIFFTag.TIFF_BYTE
形式のデータの場合、符号拡張を避けるために、データをより長い整数型に昇格させるときにアプリケーションは注意が必要です。- 戻り値:
- データは未解釈のバイト配列です。
- 例外:
ClassCastException
- フィールドが型TIFF_BYTE
、TIFF_SBYTE
、またはTIFF_UNDEFINED
でない場合。
-
getAsChars
public char[] getAsChars()
TIFFTag.TIFF_SHORT
データをchar
s (符号なし16ビット整数)の配列として返します。- 戻り値:
char
の配列としてのデータ。- 例外:
ClassCastException
- フィールドの型がTIFF_SHORT
ではない場合。
-
getAsShorts
public short[] getAsShorts()
TIFFTag.TIFF_SSHORT
データをshort
s (符号付き16ビット整数)の配列として返します。- 戻り値:
short
の配列としてのデータ。- 例外:
ClassCastException
- フィールドの型がTIFF_SSHORT
ではない場合。
-
getAsInts
public int[] getAsInts()
TIFFTag.TIFF_SLONG
データをint
s (符号付き32ビット整数)の配列として返します。- 戻り値:
int
の配列としてのデータ。- 例外:
ClassCastException
- フィールドが型TIFF_SHORT
、TIFF_SSHORT
、またはTIFF_SLONG
でない場合。
-
getAsLongs
public long[] getAsLongs()
TIFFTag.TIFF_LONG
またはTIFF_IFD_POINTER
データをlong
s (符号付き64ビット整数)の配列として返します。- 戻り値:
long
の配列としてのデータ。- 例外:
ClassCastException
- フィールドが型TIFF_LONG
またはTIFF_IFD_POINTER
でない場合。
-
getAsFloats
public float[] getAsFloats()
TIFFTag.TIFF_FLOAT
データをfloat
s (32ビット浮動小数点値)の配列として返します。- 戻り値:
float
の配列としてのデータ。- 例外:
ClassCastException
- フィールドの型がTIFF_FLOAT
ではない場合。
-
getAsDoubles
public double[] getAsDoubles()
TIFFTag.TIFF_DOUBLE
データをdouble
s (64ビット浮動小数点値)の配列として返します。- 戻り値:
double
の配列としてのデータ。- 例外:
ClassCastException
- フィールドの型がTIFF_DOUBLE
ではない場合。
-
getAsSRationals
public int[][] getAsSRationals()
TIFFTag.TIFF_SRATIONAL
データをint
の2要素配列の配列として返します。- 戻り値:
- 署名された有理数の配列としてのデータ。
- 例外:
ClassCastException
- フィールドの型がTIFF_SRATIONAL
ではない場合。
-
getAsRationals
public long[][] getAsRationals()
TIFFTag.TIFF_RATIONAL
データをlong
の2要素配列の配列として返します。- 戻り値:
- 署名されていないrationalsの配列としてのデータ。
- 例外:
ClassCastException
- フィールドの型がTIFF_RATIONAL
ではない場合。
-
getAsInt
public int getAsInt(int index)
任意の形式のデータをint
として返します。TIFFTag.TIFF_BYTE
の値は符号なしとして扱われます。つまり、符号の拡張は行われず、返される値は[0, 255]の範囲になります。TIFF_SBYTE
データは[-128, 127]の範囲で返されます。TIFF_UNDEFINED
の値は、TIFF_BYTE
のように扱われます。TIFF_SLONG
、TIFF_LONG
、TIFF_FLOAT
、TIFF_DOUBLE
またはTIFF_IFD_POINTER
形式のデータは、単にint
にキャストされ、切り捨てられる可能性があります。TIFF_SRATIONAL
またはTIFF_RATIONAL
形式のデータは、倍精度算術を使用して分子を分母に分割し、次にint
にキャストすることによって評価されます。 精度の低下や切り捨てが発生することがあります。TIFF_ASCII
形式のデータは、Double.parseDouble
メソッドのように解析され、結果ケースはint
に解析されます。- パラメータ:
index
- データのインデックス。- 戻り値:
- 指定されたインデックスにあるデータを
int
として返します。
-
getAsLong
public long getAsLong(int index)
任意の形式のデータをlong
として返します。TIFFTag.TIFF_BYTE
およびTIFF_UNDEFINED
データは符号なしとして扱われます。つまり、符号の拡張は行われず、戻り値は[0, 255]の範囲になります。TIFF_SBYTE
データは[-128, 127]の範囲で返されます。TIFF_FLOAT
とTIFF_DOUBLE
のデータは単にlong
にキャストされ、切り捨てられます。TIFF_SRATIONAL
またはTIFF_RATIONAL
形式のデータは、倍精度算術を使用して分子を分母に分割し、次にlong
にキャストすることによって評価されます。 精度の低下や切り捨てが発生することがあります。TIFF_ASCII
形式のデータはDouble.parseDouble
メソッドのように解析され、結果はlong
にキャストされます。- パラメータ:
index
- データのインデックス。- 戻り値:
- 指定されたインデックスにあるデータを
long
として返します。
-
getAsFloat
public float getAsFloat(int index)
任意の形式のデータをfloat
として返します。TIFFTag.TIFF_BYTE
およびTIFF_UNDEFINED
データは符号なしとして扱われます。つまり、符号の拡張は行われず、戻り値は[0, 255]の範囲になります。TIFF_SBYTE
データは[-128, 127]の範囲で返されます。TIFF_SLONG
、TIFF_LONG
、TIFF_DOUBLE
、またはTIFF_IFD_POINTER
形式のデータは単にfloat
にキャストされ、切り捨てられます。TIFF_SRATIONAL
またはTIFF_RATIONAL
形式のデータは、倍精度算術を使用して分子を分母に分割し、次にfloat
にキャストすることによって評価されます。TIFF_ASCII
形式のデータはDouble.parseDouble
メソッドのように解析され、結果はfloat
にキャストされます。- パラメータ:
index
- データのインデックス。- 戻り値:
- 指定されたインデックスにあるデータを
float
として返します。
-
getAsDouble
public double getAsDouble(int index)
任意の形式のデータをdouble
として返します。TIFFTag.TIFF_BYTE
およびTIFF_UNDEFINED
データは符号なしとして扱われます。つまり、符号の拡張は行われず、戻り値は[0, 255]の範囲になります。TIFF_SBYTE
データは[-128, 127]の範囲で返されます。TIFF_SRATIONAL
またはTIFF_RATIONAL
形式のデータは、倍精度算術を使用して分子を分母に分割することによって評価されます。TIFF_ASCII
形式のデータは、Double.parseDouble
メソッドのように解析されます。- パラメータ:
index
- データのインデックス。- 戻り値:
- 指定されたインデックスにあるデータを
double
として返します。
-
getAsString
public String getAsString(int index)
TIFFTag.TIFF_ASCII
の値をString
として返します。- パラメータ:
index
- データのインデックス。- 戻り値:
- 指定されたインデックスにあるデータを
String
として返します。 - 例外:
ClassCastException
- フィールドの型がTIFF_ASCII
ではない場合。
-
getAsSRational
public int[] getAsSRational(int index)
TIFFTag.TIFF_SRATIONAL
データ・アイテムをint
の2要素配列として返します。- パラメータ:
index
- データのインデックス。- 戻り値:
- 指定されたインデックスのデータは、署名付きの合理的なものです。
- 例外:
ClassCastException
- フィールドの型がTIFF_SRATIONAL
ではない場合。
-
getAsRational
public long[] getAsRational(int index)
TIFFTag.TIFF_RATIONALデータ・アイテムをintの2要素配列として返します。- パラメータ:
index
- データのインデックス。- 戻り値:
- 指定されたインデックスのデータは、符号なしの合理的なものです。
- 例外:
ClassCastException
- フィールドの型がTIFF_RATIONAL
ではない場合。
-
getValueAsString
public String getValueAsString(int index)
人間が判読可能なバージョンのデータ・アイテムを含むString
を返します。 型TIFFTag.TIFF_RATIONAL
またはTIFF_SRATIONAL
のデータは、'/'
文字で区切られた整数のペアとして表されます。TIFFTag.TIFF_RATIONAL
またはTIFF_SRATIONAL
の分子が分母の整数倍である場合、その値は"q/1"
として表されます。ここで、q
は分子と分母の商です。- パラメータ:
index
- データのインデックス。- 戻り値:
- 指定されたインデックスにあるデータを
String
として返します。 - 例外:
ClassCastException
- フィールドが正当なフィールド型のいずれかでない場合。
-
hasDirectory
public boolean hasDirectory()
フィールドにTIFFDirectory
があるかどうかを返します。- 戻り値:
- getDirectory()が非nullを返す場合にのみtrue。
-
getDirectory
public TIFFDirectory getDirectory()
利用可能であれば、関連するTIFFDirectory
を返します。 ディレクトリが設定されていない場合は、null
が返されます。- 戻り値:
- TIFFDirectoryインスタンスまたはnull。
-
clone
public TIFFField clone() throws CloneNotSupportedException
フィールドとそこに含まれるすべての情報をクローンします。- オーバーライド:
clone
、クラスObject
- 戻り値:
- この
TIFFField
のクローン。 - 例外:
CloneNotSupportedException
- インスタンスをクローン化できない場合。- 関連項目:
Cloneable
-
-