Класс 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 к дополнению 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) | Создаёт массив данных, используя |
TIFFField(TIFFTag tag,
int type,
int count,
Object data) | Создаёт |
TIFFField(TIFFTag tag,
int type,
long offset,
TIFFDirectory dir) | Создаёт |
TIFFField(TIFFTag tag,
long value) | Создаёт |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
TIFFField | clone() | Создаёт копию поля и всей содержащейся в нём информации. |
static Object | createArrayForType(int dataType,
int count) | Создаёт массив, подходящий для указанного типа данных. |
static TIFFField | createFromMetadataNode(TIFFTagSet tagSet,
Node node) | Создаёт |
byte[] | getAsBytes() | Возвращает данные как неинтерпретируемый массив |
char[] | getAsChars() | Возвращает данные в любом формате как массив |
double | getAsDouble(int index) | Возвращает данные в любом формате как |
double[] | getAsDoubles() | Возвращает данные в любом формате как массив |
float | getAsFloat(int index) | Возвращает данные в любом формате как |
float[] | getAsFloats() | Возвращает данные в любом формате как массив |
int | getAsInt(int index) | Возвращает данные в любом формате как |
int[] | getAsInts() | Возвращает данные в любом формате как массив |
long | getAsLong(int index) | Возвращает данные в любом формате как |
long[] | getAsLongs() | Возвращает данные в любом формате как массив |
Node | getAsNativeNode() | Возвращает |
long[] | getAsRational(int index) | Возвращает элемент данных типа TIFFTag.TIFF_RATIONAL в виде массива из двух целых чисел. |
long[][] | getAsRationals() | Возвращает данные в любом формате как массив массивов из 2 элементов типа |
short[] | getAsShorts() | Возвращает данные в любом формате как массив |
int[] | getAsSRational(int index) | Возвращает элемент данных типа |
int[][] | getAsSRationals() | Возвращает данные в любом формате как массив массивов из 2 элементов типа |
String | getAsString(int index) | Возвращает значение |
int | getCount() | Возвращает количество элементов данных, присутствующих в поле. |
Object | getData() | Возвращает ссылку на объект данных, связанный с полем. |
TIFFDirectory | getDirectory() | Возвращает связанный |
TIFFTag | getTag() | Возвращает тег, связанный с этим полем. |
int | getTagNumber() | Возвращает номер тега в диапазоне |
int | getType() | Возвращает тип данных, хранящихся в поле. |
static int | getTypeByName(String typeName) | Возвращает константу типа данных, соответствующую предоставленному имени типа данных. |
static String | getTypeName(int dataType) | Возвращает имя предоставленной константы типа данных. |
String | getValueAsString(int index) | Возвращает |
boolean | hasDirectory() | Возвращает, имеет ли поле |
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- Узел метаданных изображения TIFFTIFFField. - Возвращает:
- Новый
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