Класс 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 как массив из двух целых чисел. |
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- Узел метаданных исходного изображения 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 данные как массив 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, 2023, 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/21/docs/api/java.desktop/javax/imageio/plugins/tiff/TIFFField.html