Spec-Zone.ru › OpenJDK 17

Класс 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 представлены в 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
END_OF_DOCUMENT_MARKER

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

Конструктор Описание
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)
Возвращает String, содержащий удобочитаемую версию элемента данных. Данные типа TIFFTag.TIFF_RATIONAL или TIFF_SRATIONAL представляются как пара целых чисел, разделённых символом '/'. Если числитель TIFFTag.TIFF_RATIONAL или TIFF_SRATIONAL является целым кратным знаменателю, то значение представляется как "q/1", где q является частным от деления числителя на знаменатель.
Parameters:
index - Индекс данных.
Returns:
Данные в заданном индексе как String.
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, 2021, 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/17/docs/api/java.desktop/javax/imageio/plugins/tiff/TIFFField.html

Spec-Zone.ru

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