Класс TIFFField
- Все реализуемые интерфейсы:
Cloneable
public final class TIFFField extends Object implements Cloneable
Поле каталога файлов изображений TIFF (IFD) определяется номером тега, которому соответствует последовательность значений одного и того же типа данных. В TIFF 6.0 определены 12 типов данных; 13-й тип IFD определен в техническом примечании 1 TIFF, входящем в дополнение 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
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
TIFFField |
Создает массив данных с помощью createArrayForType() и вызывает TIFFField(TIFFTag,int,int,Object) с указанными параметрами и созданным массивом. |
TIFFField |
Создает TIFFField с произвольными данными. |
TIFFField |
Создает TIFFField со смещением IFD и содержимым. |
TIFFField |
Создает TIFFField с одним неотрицательным целочисленным значением. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
TIFFField |
clone() |
Клонирует поле и всю содержащуюся в нем информацию. |
static Object |
createArrayForType |
Создает массив, соответствующий указанному типу данных. |
static TIFFField |
createFromMetadataNode |
Создает TIFFField из узла собственных метаданных изображения TIFF. |
byte[] |
getAsBytes() |
Возвращает данные в виде массива byte без интерпретации. |
char[] |
getAsChars() |
Возвращает данные TIFFTag.TIFF_SHORT в виде массива char (беззнаковых 16-разрядных целых чисел). |
double |
getAsDouble |
Возвращает данные в любом формате как double. |
double[] |
getAsDoubles() |
Возвращает данные TIFFTag.TIFF_DOUBLE в виде массива double (64-разрядных значений с плавающей точкой). |
float |
getAsFloat |
Возвращает данные в любом формате как float. |
float[] |
getAsFloats() |
Возвращает данные TIFFTag.TIFF_FLOAT в виде массива float (32-разрядных значений с плавающей точкой). |
int |
getAsInt |
Возвращает данные в любом формате как int. |
int[] |
getAsInts() |
Возвращает данные TIFFTag.TIFF_SLONG в виде массива int (знаковых 32-разрядных целых чисел). |
long |
getAsLong |
Возвращает данные в любом формате как long. |
long[] |
getAsLongs() |
Возвращает данные TIFFTag.TIFF_LONG или TIFF_IFD_POINTER в виде массива long (знаковых 64-разрядных целых чисел). |
Node |
getAsNativeNode() |
Возвращает TIFFField как узел с именем "TIFFField" или "TIFFIFD", как описано в спецификации собственных метаданных изображения TIFF. |
long[] |
getAsRational |
Возвращает элемент данных TIFFTag.TIFF_RATIONAL в виде массива int из двух элементов. |
long[][] |
getAsRationals() |
Возвращает данные TIFFTag.TIFF_RATIONAL в виде массива двухэлементных массивов long. |
short[] |
getAsShorts() |
Возвращает данные TIFFTag.TIFF_SSHORT в виде массива short (знаковых 16-разрядных целых чисел). |
int[] |
getAsSRational |
Возвращает элемент данных TIFFTag.TIFF_SRATIONAL в виде двухэлементного массива int. |
int[][] |
getAsSRationals() |
Возвращает данные TIFFTag.TIFF_SRATIONAL в виде массива двухэлементных массивов int. |
String |
getAsString |
Возвращает значение TIFFTag.TIFF_ASCII как String. |
int |
getCount() |
Возвращает количество элементов данных, содержащихся в поле. |
Object |
getData() |
Возвращает ссылку на объект данных, связанный с полем. |
TIFFDirectory |
getDirectory() |
Возвращает связанный TIFFDirectory, если он доступен. |
TIFFTag |
getTag() |
Возвращает тег, связанный с этим полем. |
int |
getTagNumber() |
Возвращает номер тега в диапазоне [0,65535]. |
int |
getType() |
Возвращает тип данных, хранящихся в поле. |
static int |
getTypeByName |
Возвращает константу типа данных, соответствующую указанному имени типа данных. |
static String |
getTypeName |
Возвращает имя указанной константы типа данных. |
String |
getValueAsString |
Возвращает String с удобочитаемым представлением элемента данных. |
boolean |
hasDirectory() |
Возвращает, имеет ли поле TIFFDirectory. |
boolean |
isIntegral() |
Показывает, имеет ли значение, связанное с полем, целочисленный тип данных. |
Подробное описание конструкторов
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
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. - См. также:
Подробное описание методов
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()
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)
- Параметры:
-
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- если экземпляр не может быть клонирован. - См. также:
© 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