Класс TIFFField

Все реализованные интерфейсы:
Cloneable
public final class TIFFField
extends Object
implements Cloneable

Класс, представляющий поле в каталоге изображений TIFF 6.0.

Поле в каталоге изображения файла TIFF (IFD) определяется как номер тега, сопровождаемый последовательностью значений одинакового типа данных. TIFF 6.0 определяет 12 типов данных; 13-й тип IFD определён в технической заметке 1 к дополнению 1 к спецификации TIFF. Эти типы данных TIFF обозначаются константами Java и отображаются во внутреннем представлении на типы и имена типов данных языка 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()

Возвращает данные в любом формате как массив char (целые беззнаковые 16-битные числа).

double getAsDouble​(int index)

Возвращает данные в любом формате как double.

double[] getAsDoubles()

Возвращает данные в любом формате как массив double (64-битные числа с плавающей точкой).

float getAsFloat​(int index)

Возвращает данные в любом формате как float.

float[] getAsFloats()

Возвращает данные в любом формате как массив float (32-битные числа с плавающей точкой).

int getAsInt​(int index)

Возвращает данные в любом формате как int.

int[] getAsInts()

Возвращает данные в любом формате как массив int (целые 32-битные числа со знаком).

long getAsLong​(int index)

Возвращает данные в любом формате как long.

long[] getAsLongs()

Возвращает данные в любом формате как массив long (целые 64-битные числа со знаком).

Node getAsNativeNode()

Возвращает TIFFField в виде узла, названного либо "TIFFField", либо "TIFFIFD", как описано в спецификации метаданных изображений в родном формате TIFF.

long[] getAsRational​(int index)

Возвращает элемент данных типа TIFFTag.TIFF_RATIONAL в виде массива из двух целых чисел.

long[][] getAsRationals()

Возвращает данные в любом формате как массив массивов из 2 элементов типа long.

short[] getAsShorts()

Возвращает данные в любом формате как массив short (целые 16-битные числа со знаком).

int[] getAsSRational​(int index)

Возвращает элемент данных типа TIFFTag.TIFF_SRATIONAL в виде массива из двух элементов типа int.

int[][] getAsSRationals()

Возвращает данные в любом формате как массив массивов из 2 элементов типа 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 - Узел метаданных изображения TIFF TIFFField.
Возвращает:
Новый 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 в виде массива 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.

Данные типа TIFF_UNDEFINED и 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(int)

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() возвращает не null.

getDirectory

public TIFFDirectory getDirectory()

Возвращает связанный TIFFDirectory, если он доступен. Если каталог не установлен, возвращается null.

Возвращает:
экземпляр TIFFDirectory или null.

clone

public TIFFField clone()
                throws CloneNotSupportedException

Клонирует поле и всю содержащуюся в нём информацию.

Переопределяет:
clone в классе Object
Возвращает:
Клон этого TIFFField.
Исключения:
CloneNotSupportedException - если экземпляр нельзя клонировать.
См. также:
Cloneable

© 1993, 2020, 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/11/docs/api/java.desktop/javax/imageio/plugins/tiff/TIFFField.html

Spec-Zone .ru
спецификации, руководства, описания, API