Spec-Zone.ru › OpenJDK 25

Класс TIFFField

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 определен в техническом примечании 1 TIFF, входящем в дополнение 1 к спецификации TIFF. На эти типы данных 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] {числитель, знаменатель} "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] {числитель, знаменатель} "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)
Создает TIFFField со смещением IFD и содержимым.
TIFFField(TIFFTag tag, long value)
Создает TIFFField с одним неотрицательным целочисленным значением.

Краткое описание методов

Модификатор и тип Метод Описание
TIFFField clone()
Клонирует поле и всю содержащуюся в нем информацию.
static Object createArrayForType(int dataType, int count)
Создает массив, соответствующий указанному типу данных.
static TIFFField createFromMetadataNode(TIFFTagSet tagSet, Node node)
Создает TIFFField из узла собственных метаданных изображения TIFF.
byte[] getAsBytes()
Возвращает данные в виде массива byte без интерпретации.
char[] getAsChars()
Возвращает данные TIFFTag.TIFF_SHORT в виде массива char (беззнаковых 16-разрядных целых чисел).
double getAsDouble(int index)
Возвращает данные в любом формате как double.
double[] getAsDoubles()
Возвращает данные TIFFTag.TIFF_DOUBLE в виде массива double (64-разрядных значений с плавающей точкой).
float getAsFloat(int index)
Возвращает данные в любом формате как float.
float[] getAsFloats()
Возвращает данные TIFFTag.TIFF_FLOAT в виде массива float (32-разрядных значений с плавающей точкой).
int getAsInt(int index)
Возвращает данные в любом формате как int.
int[] getAsInts()
Возвращает данные TIFFTag.TIFF_SLONG в виде массива int (знаковых 32-разрядных целых чисел).
long getAsLong(int index)
Возвращает данные в любом формате как long.
long[] getAsLongs()
Возвращает данные TIFFTag.TIFF_LONG или TIFF_IFD_POINTER в виде массива long (знаковых 64-разрядных целых чисел).
Node getAsNativeNode()
Возвращает TIFFField как узел с именем "TIFFField" или "TIFFIFD", как описано в спецификации собственных метаданных изображения TIFF.
long[] getAsRational(int index)
Возвращает элемент данных TIFFTag.TIFF_RATIONAL в виде массива int из двух элементов.
long[][] getAsRationals()
Возвращает данные TIFFTag.TIFF_RATIONAL в виде массива двухэлементных массивов long.
short[] getAsShorts()
Возвращает данные TIFFTag.TIFF_SSHORT в виде массива short (знаковых 16-разрядных целых чисел).
int[] getAsSRational(int index)
Возвращает элемент данных TIFFTag.TIFF_SRATIONAL в виде двухэлементного массива int.
int[][] getAsSRationals()
Возвращает данные TIFFTag.TIFF_SRATIONAL в виде массива двухэлементных массивов int.
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()
Показывает, имеет ли значение, связанное с полем, целочисленный тип данных.

Методы, объявленные в классе Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

TIFFField

public TIFFField(TIFFTag tag, int type, int count, Object data)
Создает TIFFField с произвольными данными. Параметр type должен быть значением, для которого tag.isDataTypeOK() возвращает true. Параметр data должен быть массивом типа Java, соответствующего типу поля TIFF.

Обратите внимание, что значение (данные) TIFFField всегда будет фактическим значением поля независимо от количества байтов, необходимых для этого значения. Это верно, даже если запись TIFF IFD Entry, соответствующая полю, фактически может содержать смещение к значению поля, а не само значение (последнее имеет место тогда и только тогда, когда значение помещается в 4 байта). Иными словами, значение поля уже будет считано из потока TIFF. (Исключение возможно, если поле представляет содержимое IFD, не входящего в базовую спецификацию. В этом случае данные будут long[], содержащим смещение к IFD, а TIFFDirectory, возвращаемое методом getDirectory(), будет его содержимым.)

Параметры:
tag - Тег, связываемый с этим полем.
type - Одна из констант TIFFTag.TIFF_*, указывающих тип данных поля в том виде, в котором они записаны в поток TIFF.
count - Количество значений данных.
data - Фактическое содержимое данных поля.
Исключения:
NullPointerException - если tag == null.
IllegalArgumentException - если type не является одной из констант типа данных TIFFTag.TIFF_*.
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_*, указывающих тип данных поля в том виде, в котором они записаны в поток TIFF.
count - Количество значений данных.
Исключения:
NullPointerException - если tag == null.
IllegalArgumentException - если type не является одной из констант типа данных TIFFTag.TIFF_*.
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 с одним неотрицательным целочисленным значением. Поле будет иметь тип TIFF_SHORT, если value находится в диапазоне [0,0xffff], и тип TIFF_LONG, если value находится в диапазоне [0x10000,0xffffffff]. Число значений поля будет равно единице.
Параметры:
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)
Создает TIFFField со смещением и содержимым IFD. Смещение будет сохранено в данных этого поля как long[] {offset}. Каталог не будет клонирован. Число значений поля будет равно единице.
Параметры:
tag - Тег, связываемый с этим полем.
type - Одна из констант TIFFTag.TIFF_LONG или TIFFTag.TIFF_IFD_POINTER.
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)
Создает TIFFField на основе узла метаданных изображения в собственном формате TIFF. Если значение атрибута "number" узла не найдено в tagSet, будет создан новый TIFFTag с именем TIFFTag.UNKNOWN_TAG_NAME и назначен полю.
Параметры:
tagSet - TIFFTagSet, которому принадлежит TIFFTag поля.
node - Узел TIFFField метаданных изображения в собственном формате TIFF.
Возвращает:
Новый TIFFField.
Исключения:
IllegalArgumentException - Если содержимое параметра Node не соответствует структуре элементов TIFFField, определенной в спецификации формата метаданных изображения в собственном формате TIFF, или если сочетание атрибутов узла и данных недопустимо согласно спецификации конструктора 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_*. В будущих версиях TIFF возможны более высокие значения.
Возвращает:
Тип данных значения поля.

getTypeName

public static String getTypeName(int dataType)
Возвращает имя переданной константы типа данных.
Параметры:
dataType - Одна из констант TIFFTag.TIFF_*, указывающих тип данных поля в том виде, в котором они записаны в поток TIFF.
Возвращает:
Имя типа, соответствующее переданной константе типа.
Исключения:
IllegalArgumentException - если dataType не является одной из констант типа данных TIFFTag.TIFF_*.

getTypeByName

public static int getTypeByName(String typeName)
Возвращает константу типа данных, соответствующую переданному имени типа данных. Если имя неизвестно, будет возвращено -1.
Параметры:
typeName - Имя типа.
Возвращает:
Одна из констант TIFFTag.TIFF_* или -1, если имя не распознано.

createArrayForType

public static Object createArrayForType(int dataType, int count)
Создает массив, соответствующий указанному типу данных.
Параметры:
dataType - Одна из констант типа данных TIFFTag.TIFF_*.
count - Количество значений в массиве.
Возвращает:
Массив, соответствующий указанному типу данных.
Исключения:
IllegalArgumentException - если dataType не является одной из констант типа данных TIFFTag.TIFF_*.
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. Узел будет иметь имя "TIFFIFD" тогда и только тогда, когда hasDirectory() возвращает true, а тип поля — TIFFTag.TIFF_LONG или TIFFTag.TIFF_IFD_POINTER.
Возвращает:
Node с именем "TIFFField" или "TIFFIFD".

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 (беззнаковых 16-разрядных целых чисел).
Возвращает:
Данные в виде массива char.
Исключения:
ClassCastException - если поле имеет тип, отличный от TIFF_SHORT.

getAsShorts

public short[] getAsShorts()
Возвращает данные TIFFTag.TIFF_SSHORT в виде массива short (знаковых 16-разрядных целых чисел).
Возвращает:
Данные в виде массива short.
Исключения:
ClassCastException - если поле имеет тип, отличный от TIFF_SSHORT.

getAsInts

public int[] getAsInts()
Возвращает данные TIFFTag.TIFF_SLONG в виде массива int (знаковых 32-разрядных целых чисел).
Возвращает:
Данные в виде массива int.
Исключения:
ClassCastException - если поле имеет тип, отличный от TIFF_SHORT, TIFF_SSHORT или TIFF_SLONG.

getAsLongs

public long[] getAsLongs()
Возвращает данные TIFFTag.TIFF_LONG или TIFF_IFD_POINTER в виде массива long (знаковых 64-разрядных целых чисел).
Возвращает:
Данные в виде массива long.
Исключения:
ClassCastException - если поле имеет тип, отличный от TIFF_LONG или TIFF_IFD_POINTER.

getAsFloats

public float[] getAsFloats()
Возвращает данные TIFFTag.TIFF_FLOAT в виде массива float (32-разрядных чисел с плавающей точкой).
Возвращает:
Данные в виде массива float.
Исключения:
ClassCastException - если поле имеет тип, отличный от TIFF_FLOAT.

getAsDoubles

public double[] getAsDoubles()
Возвращает данные TIFFTag.TIFF_DOUBLE в виде массива double (64-разрядных чисел с плавающей точкой).
Возвращает:
Данные в виде массива double.
Исключения:
ClassCastException - если поле имеет тип, отличный от TIFF_DOUBLE.

getAsSRationals

public int[][] getAsSRationals()
Возвращает данные TIFFTag.TIFF_SRATIONAL в виде массива двухэлементных массивов из int.
Возвращает:
Данные в виде массива знаковых рациональных чисел.
Исключения:
ClassCastException - если поле имеет тип, отличный от TIFF_SRATIONAL.

getAsRationals

public long[][] getAsRationals()
Возвращает данные TIFFTag.TIFF_RATIONAL в виде массива двухэлементных массивов из long.
Возвращает:
Данные в виде массива беззнаковых рациональных чисел.
Исключения:
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.
Параметры:
index - Индекс данных.
Возвращает:
Данные по указанному индексу в виде знакового рационального числа.
Исключения:
ClassCastException - если поле имеет тип, отличный от TIFF_SRATIONAL.

getAsRational

public long[] getAsRational(int index)
Возвращает элемент данных TIFFTag.TIFF_RATIONAL в виде двухэлементного массива целых чисел.
Параметры:
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.
Возвращает:
true тогда и только тогда, когда getDirectory() возвращает ненулевое значение.

getDirectory

public TIFFDirectory getDirectory()
Возвращает связанный TIFFDirectory, если он доступен. Если каталог не задан, возвращается null.
Возвращает:
экземпляр TIFFDirectory или null.

clone

public TIFFField clone() throws CloneNotSupportedException
Клонирует поле и всю содержащуюся в нем информацию.
Переопределяет:
clone в классе Object
Возвращает:
Клон этого TIFFField.
Исключения:
CloneNotSupportedException - если экземпляр не может быть клонирован.
См. также:
  • Cloneable

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/imageio/plugins/tiff/TIFFField.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API