Класс TIFFField
- Все реализованные интерфейсы:
Cloneable
public final class TIFFField extends Object implements Cloneable
Поле в каталоге изображений TIFF (IFD) определяется номером тега, сопровождаемым последовательностью значений одинакового типа данных. TIFF 6.0 определяет 12 типов данных; 13-й тип IFD определен в технической заметке 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 в виде массива из двух целых чисел. |
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-изображения 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()
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)
- 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:
© 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