Spec-Zone.ru › OpenJDK 24

Класс 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 определен в технической заметке 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 в виде массива из двух целых чисел.
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()
Указывает, является ли значение, связанное с полем, целого типа данных.

Методы, объявленные в классе java.lang.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-изображения TIFF native image metadata format specification, или если сочетание атрибутов узла и данных не является допустимым по спецификации конструктора 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 как массив 2-элементных массивов int.
Возвращает:
Данные как массив знаковых рациональных чисел.
Исключения:
ClassCastException - если поле не является типом TIFF_SRATIONAL.

getAsRationals

public long[][] getAsRationals()
Возвращает данные TIFFTag.TIFF_RATIONAL как массив 2-элементных массивов 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.

Parameters:
index - Индекс данных.
Returns:
Данные в заданном индексе как double.

getAsString

public String getAsString(int index)
Возвращает значение TIFFTag.TIFF_ASCII как String.
Parameters:
index - Индекс данных.
Returns:
Данные в заданном индексе как String.
Throws:
ClassCastException - если поле не имеет тип TIFF_ASCII.

getAsSRational

public int[] getAsSRational(int index)
Возвращает элемент данных TIFFTag.TIFF_SRATIONAL как массив из двух элементов int.
Parameters:
index - Индекс данных.
Returns:
Данные в заданном индексе как рациональное число со знаком.
Throws:
ClassCastException - если поле не имеет тип TIFF_SRATIONAL.

getAsRational

public long[] getAsRational(int index)
Возвращает элемент данных TIFFTag.TIFF_RATIONAL как массив из двух целых чисел.
Parameters:
index - Индекс данных.
Returns:
Данные в заданном индексе как беззнаковое рациональное число.
Throws:
ClassCastException - если поле не имеет тип TIFF_RATIONAL.

getValueAsString

public String getValueAsString(int index)
Возвращает строку, содержащую удобочитаемый вариант элемента данных. Данные типа TIFFTag.TIFF_RATIONAL или TIFF_SRATIONAL представляются как пара целых чисел, разделённых символом '/'. Если числитель TIFFTag.TIFF_RATIONAL или TIFF_SRATIONAL является целочисленной кратной знаменателю, то значение представляется как "q/1", где q – частное от деления числителя на знаменатель.
Parameters:
index - Индекс данных.
Returns:
Данные в заданном индексе как строку.
Throws:
ClassCastException - если поле не имеет один из разрешённых типов.

hasDirectory

public boolean hasDirectory()
Возвращает, имеет ли поле TIFFDirectory.
Returns:
true тогда и только тогда, когда getDirectory() возвращает не null.

getDirectory

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

clone

public TIFFField clone() throws CloneNotSupportedException
Клонирует поле и всю содержащуюся в нём информацию.
Overrides:
clone в классе Object
Returns:
Клон этого TIFFField.
Throws:
CloneNotSupportedException - если экземпляр не может быть клонирован.
See Also:
  • Cloneable

© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/imageio/plugins/tiff/TIFFField.html

Spec-Zone.ru

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