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