Класс TIFFField
- Все реализуемые интерфейсы:
Cloneable
public final class TIFFField extends Object implements Cloneable
Поле в каталоге файлов изображений TIFF (IFD) определяется номером тега и последовательностью значений одинакового типа данных. В TIFF 6.0 определено 12 типов данных; 13-й тип IFD определён в технической заметке TIFF 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
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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() |
Показывает, имеет ли значение, связанное с полем, целочисленный тип данных. |
Методы, объявленные в классе Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
TIFFField
public TIFFField(TIFFTag tag, int type, int count, Object data)
TIFFField с произвольными данными. Параметр type должен иметь значение, для которого tag.isDataTypeOK() возвращает true. Параметр data должен быть массивом типа Java, соответствующего типу поля TIFF. Обратите внимание, что значение (данные) TIFFField всегда будет фактическим значением поля, независимо от количества байтов, необходимых для этого значения. Это верно, несмотря на то, что запись IFD TIFF, соответствующая полю, фактически может содержать смещение значения поля, а не само значение (последнее имеет место только в том случае, если значение помещается в 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.