Spec-Zone.ru › OpenJDK 25

Класс ImageWriteParam

java.lang.Object
javax.imageio.IIOParam
javax.imageio.ImageWriteParam
Прямые известные подклассы:
BMPImageWriteParam, JPEGImageWriteParam
public class ImageWriteParam extends IIOParam
Класс, описывающий способ кодирования потока. Экземпляры этого класса или его подклассов используются для передачи предписаний о том, как выполнять запись, экземплярам ImageWriter.

Плагин для определённого формата изображения может определить подкласс этого класса и возвращать объекты этого класса из метода getDefaultWriteParam своей реализации ImageWriter. Например, встроенный плагин для записи изображений JPEG будет возвращать экземпляры javax.imageio.plugins.jpeg.JPEGImageWriteParam.

Область изображения, которую следует записать, определяется сначала пересечением фактических границ изображения с прямоугольником, заданным с помощью IIOParam.setSourceRegion, если он указан. Если результирующий прямоугольник имеет нулевую ширину или высоту, средство записи вызовет IIOException. Если пересечение не пусто, запись начнётся с первого пикселя после субдискретизации и будет включать дополнительные пиксели в пределах пересекающихся границ в соответствии с горизонтальным и вертикальным коэффициентами субдискретизации, заданными с помощью IIOParam.setSourceSubsampling.

Отдельные функции, такие как разбиение на тайлы, прогрессивное кодирование и сжатие, могут работать в одном из четырёх режимов. MODE_DISABLED отключает функции; MODE_DEFAULT включает функцию со значениями параметров, определяемыми средством записи; MODE_EXPLICIT включает функцию и позволяет использовать метод set для передачи дополнительных параметров; а MODE_COPY_FROM_METADATA копирует соответствующие значения параметров из объектов метаданных потока и изображения, переданных средству записи. По умолчанию для всех функций используется MODE_COPY_FROM_METADATA. Нестандартные функции, предоставляемые в подклассах, могут, но не обязаны использовать аналогичную схему.

Плагины для записи могут расширять функциональность ImageWriteParam, предоставляя подкласс, реализующий дополнительные интерфейсы, специфичные для плагина. Плагин должен документировать доступные интерфейсы и способы их использования. Средства записи будут незаметно игнорировать любые расширенные функции подкласса ImageWriteParam, о которых им неизвестно. Кроме того, они могут игнорировать любые необязательные функции, которые обычно отключают при создании собственных экземпляров ImageWriteParam с помощью getDefaultWriteParam.

Обратите внимание: если для некоторой возможности не существует метода запроса, её должны поддерживать все реализации ImageWriter (например, прогрессивное кодирование необязательно, но поддержка субдискретизации обязательна).

См. также:
  • ImageReadParam

Краткое описание полей

Модификатор и тип Поле Описание
protected boolean canOffsetTiles
Объект boolean, который имеет значение true, если этот ImageWriteParam позволяет задавать параметры смещения сетки тайлов.
protected boolean canWriteCompressed
Объект boolean, который имеет значение true, если это средство записи может записывать изображения со сжатием.
protected boolean canWriteProgressive
Объект boolean, который имеет значение true, если этот ImageWriteParam позволяет записывать изображения в виде прогрессивной последовательности проходов с возрастающим качеством.
protected boolean canWriteTiles
Объект boolean, который имеет значение true, если этот ImageWriteParam позволяет задавать параметры ширины и высоты тайла.
protected int compressionMode
Режим, управляющий настройками сжатия; ему должно быть присвоено одно из четырёх значений MODE_*.
protected float compressionQuality
Объект float, содержащий текущее значение качества сжатия.
protected String compressionType
Объект String, содержащий имя текущего типа сжатия или null, если тип не задан.
protected String[] compressionTypes
Массив объектов Strings, содержащий имена доступных типов сжатия.
protected Locale locale
Объект Locale для локализации названий типов сжатия и описаний качества либо null, чтобы использовать Locale по умолчанию.
static final int MODE_COPY_FROM_METADATA
Константное значение, которое можно передать таким методам, как setTilingMode, setProgressiveMode или setCompressionMode, чтобы включить эту функцию для будущих операций записи.
static final int MODE_DEFAULT
Константное значение, которое можно передать таким методам, как setTilingMode, setProgressiveMode и setCompressionMode, чтобы включить эту функцию для будущих операций записи.
static final int MODE_DISABLED
Константное значение, которое можно передать таким методам, как setTilingMode, setProgressiveMode и setCompressionMode, чтобы отключить функцию для будущих операций записи.
static final int MODE_EXPLICIT
Константное значение, которое можно передать таким методам, как setTilingMode или setCompressionMode, чтобы включить функцию для будущих операций записи.
protected Dimension[] preferredTileSizes
Массив пар предпочтительных диапазонов размеров тайлов.
protected int progressiveMode
Режим, управляющий прогрессивным кодированием; ему должно быть присвоено одно из четырёх значений MODE_*, кроме MODE_EXPLICIT.
protected int tileGridXOffset
Величина горизонтального смещения начала сетки тайлов относительно начала изображения, если разбиение на тайлы включено, или 0 в противном случае.
protected int tileGridYOffset
Величина вертикального смещения начала сетки тайлов относительно начала изображения, если разбиение на тайлы включено, или 0 в противном случае.
protected int tileHeight
Высота каждого тайла, если разбиение на тайлы включено, или 0 в противном случае.
protected int tileWidth
Ширина каждого тайла, если разбиение на тайлы включено, или 0 в противном случае.
protected int tilingMode
Режим, управляющий настройками разбиения на тайлы; ему должно быть присвоено одно из четырёх значений MODE_*.
protected boolean tilingSet
Объект boolean, который имеет значение true, если параметры разбиения на тайлы заданы.

Поля, объявленные в классе IIOParam

controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset

Краткое описание конструкторов

ImageWriteParam()
ImageWriteParam(Locale locale)
Модификатор Конструктор Описание
protected
Создаёт пустой ImageWriteParam.
Создаёт ImageWriteParam, настроенный для использования заданного Locale.

Краткое описание методов

Модификатор и тип Метод Описание
boolean canOffsetTiles()
Возвращает true, если средство записи может выполнять разбиение на тайлы с ненулевыми смещениями сетки во время записи.
boolean canWriteCompressed()
Возвращает true, если это средство записи поддерживает сжатие.
boolean canWriteProgressive()
Возвращает true, если средство записи может записывать изображения в виде серии проходов с постепенно возрастающим качеством.
boolean canWriteTiles()
Возвращает true, если средство записи может выполнять разбиение на тайлы во время записи.
float getBitRate(float quality)
Возвращает float, указывающее оценочное количество битов выходных данных на каждый бит входных данных изображения при заданном уровне качества.
int getCompressionMode()
Возвращает текущий режим сжатия, если сжатие поддерживается.
float getCompressionQuality()
Возвращает текущее значение качества сжатия.
String[] getCompressionQualityDescriptions()
Возвращает массив объектов Strings, которые можно использовать вместе с getCompressionQualityValues в пользовательском интерфейсе для задания или отображения уровня качества сжатия.
float[] getCompressionQualityValues()
Возвращает массив объектов floats, которые можно использовать вместе с getCompressionQualityDescriptions в пользовательском интерфейсе для задания или отображения уровня качества сжатия.
String getCompressionType()
Возвращает заданный в данный момент тип сжатия или null, если тип не задан.
String[] getCompressionTypes()
Возвращает список доступных типов сжатия в виде массива объектов Strings или null, если выбрать тип сжатия с помощью этих интерфейсов нельзя.
Locale getLocale()
Возвращает текущий Locale или null, если поддерживается только Locale по умолчанию.
String getLocalizedCompressionTypeName()
Возвращает локализованное название текущего типа сжатия, используя Locale, возвращаемый методом getLocale.
Dimension[] getPreferredTileSizes()
Возвращает массив объектов Dimensions, указывающих допустимые диапазоны размеров тайлов в том виде, в котором они будут закодированы в выходном файле или потоке.
int getProgressiveMode()
Возвращает текущий режим прогрессивной записи потока.
int getTileGridXOffset()
Возвращает смещение горизонтальной сетки тайлов изображения в том виде, в котором оно будет записано в выходной поток.
int getTileGridYOffset()
Возвращает смещение вертикальной сетки тайлов изображения в том виде, в котором оно будет записано в выходной поток.
int getTileHeight()
Возвращает высоту каждого тайла изображения в том виде, в котором оно будет записано в выходной поток.
int getTileWidth()
Возвращает ширину каждого тайла изображения в том виде, в котором оно будет записано в выходной поток.
int getTilingMode()
Возвращает текущий режим разбиения на тайлы, если оно поддерживается.
boolean isCompressionLossless()
Возвращает true, если текущий тип сжатия обеспечивает сжатие без потерь.
void setCompressionMode(int mode)
Задаёт, следует ли выполнять сжатие и, если да, как определять параметры сжатия.
void setCompressionQuality(float quality)
Задаёт качество сжатия значением от 0 до 1.
void setCompressionType(String compressionType)
Задаёт тип сжатия одним из значений, указанных в getCompressionTypes.
void setProgressiveMode(int mode)
Задаёт режим прогрессивной записи изображения, при котором поток будет содержать серию сканирований с возрастающим качеством.
void setTiling(int tileWidth, int tileHeight, int tileGridXOffset, int tileGridYOffset)
Задаёт разбиение изображения на тайлы в выходном потоке.
void setTilingMode(int mode)
Определяет, будет ли изображение разбито на тайлы в выходном потоке и, если да, как будут определяться параметры разбиения.
void unsetCompression()
Удаляет все ранее заданные параметры типа и качества сжатия.
void unsetTiling()
Удаляет все ранее заданные параметры сетки тайлов, установленные вызовами setTiling.

Методы, объявленные в классе IIOParam

activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

MODE_DISABLED

public static final int MODE_DISABLED
Постоянное значение, которое можно передать в такие методы, как setTilingMode, setProgressiveMode и setCompressionMode, чтобы отключить функцию для последующих операций записи. То есть, если установлен этот режим, поток не будет разбит на тайлы, прогрессивным или сжатым, а соответствующие методы доступа вызовут IllegalStateException.
См. также:
  • MODE_EXPLICIT
  • MODE_COPY_FROM_METADATA
  • MODE_DEFAULT
  • setProgressiveMode(int)
  • getProgressiveMode()
  • setTilingMode(int)
  • getTilingMode()
  • setCompressionMode(int)
  • getCompressionMode()
  • Значения константных полей

MODE_DEFAULT

public static final int MODE_DEFAULT
Постоянное значение, которое можно передать в такие методы, как setTilingMode, setProgressiveMode и setCompressionMode, чтобы включить эту функцию для последующих операций записи. То есть, если этот режим включен, поток будет разбит на тайлы, станет прогрессивным или будет сжат в соответствии с разумными значениями по умолчанию, выбранными внутри средства записи; выбор зависит от подключаемого модуля. Соответствующие методы доступа вызовут IllegalStateException.
См. также:
  • MODE_DISABLED
  • MODE_EXPLICIT
  • MODE_COPY_FROM_METADATA
  • setProgressiveMode(int)
  • getProgressiveMode()
  • setTilingMode(int)
  • getTilingMode()
  • setCompressionMode(int)
  • getCompressionMode()
  • Значения константных полей

MODE_EXPLICIT

public static final int MODE_EXPLICIT
Постоянное значение, которое можно передать в такие методы, как setTilingMode или setCompressionMode, чтобы включить функцию для последующих операций записи. То есть, если установлен этот режим, поток будет разбит на тайлы или сжат в соответствии с дополнительной информацией, переданной в соответствующие методы set этого класса и доступной через соответствующие методы get. Обратите внимание, что этот режим не поддерживается для прогрессивного вывода.
См. также:
  • MODE_DISABLED
  • MODE_COPY_FROM_METADATA
  • MODE_DEFAULT
  • setProgressiveMode(int)
  • getProgressiveMode()
  • setTilingMode(int)
  • getTilingMode()
  • setCompressionMode(int)
  • getCompressionMode()
  • Значения константных полей

MODE_COPY_FROM_METADATA

public static final int MODE_COPY_FROM_METADATA
Постоянное значение, которое можно передать в такие методы, как setTilingMode, setProgressiveMode или setCompressionMode, чтобы включить эту функцию для последующих операций записи. То есть, если этот режим включен, поток будет разбит на тайлы, станет прогрессивным или будет сжат на основе содержимого метаданных потока и/или изображения, переданных операции записи, а все соответствующие методы доступа вызовут IllegalStateException.

Это режим по умолчанию для всех функций, поэтому чтение с метаданными, за которым следует запись с метаданными, сохранит как можно больше информации.

См. также:
  • MODE_DISABLED
  • MODE_EXPLICIT
  • MODE_DEFAULT
  • setProgressiveMode(int)
  • getProgressiveMode()
  • setTilingMode(int)
  • getTilingMode()
  • setCompressionMode(int)
  • getCompressionMode()
  • Значения константных полей

canWriteTiles

protected boolean canWriteTiles
Значение boolean, равное true, если этот ImageWriteParam позволяет задавать параметры ширины и высоты тайла. По умолчанию значение равно false. Подклассы должны задавать значение вручную.

Подклассы, не поддерживающие запись тайлов, должны установить для этого значения false.

tilingMode

protected int tilingMode
Режим, определяющий параметры разбиения на тайлы. Должен быть установлен в одно из четырех значений MODE_*. Значение по умолчанию — MODE_COPY_FROM_METADATA.

Подклассы, не поддерживающие запись тайлов, могут игнорировать это значение.

См. также:
  • MODE_DISABLED
  • MODE_EXPLICIT
  • MODE_COPY_FROM_METADATA
  • MODE_DEFAULT
  • setTilingMode(int)
  • getTilingMode()

preferredTileSizes

protected Dimension[] preferredTileSizes
Массив пар диапазонов предпочтительных размеров тайлов. Значение по умолчанию — null, что означает отсутствие предпочтительных размеров. Если значение не равно null, его длина должна быть четной и составлять не менее двух элементов.

Подклассы, не поддерживающие запись тайлов, могут игнорировать это значение.

См. также:
  • getPreferredTileSizes()

tilingSet

protected boolean tilingSet
Значение boolean, равное true, если параметры разбиения на тайлы заданы.

Подклассы, не поддерживающие запись тайлов, могут игнорировать это значение.

tileWidth

protected int tileWidth
Ширина каждого тайла, если разбиение на тайлы настроено, или 0 в противном случае.

Подклассы, не поддерживающие разбиение на тайлы, могут игнорировать это значение.

tileHeight

protected int tileHeight
Высота каждого тайла, если разбиение на тайлы настроено, или 0 в противном случае. Начальное значение — 0.

Подклассы, не поддерживающие разбиение на тайлы, могут игнорировать это значение.

canOffsetTiles

protected boolean canOffsetTiles
Значение boolean, равное true, если этот ImageWriteParam позволяет задавать параметры смещения сетки тайлов. По умолчанию значение равно false. Подклассы должны задавать значение вручную.

Подклассы, не поддерживающие запись тайлов или поддерживающие ее, но не поддерживающие смещение тайлов, должны установить для этого значения false.

tileGridXOffset

protected int tileGridXOffset
Величина горизонтального смещения начала сетки тайлов относительно начала изображения, если разбиение на тайлы настроено, или 0 в противном случае. Начальное значение — 0.

Подклассы, не поддерживающие смещение тайлов, могут игнорировать это значение.

tileGridYOffset

protected int tileGridYOffset
Величина вертикального смещения начала сетки тайлов относительно начала изображения, если разбиение на тайлы настроено, или 0 в противном случае. Начальное значение — 0.

Подклассы, не поддерживающие смещение тайлов, могут игнорировать это значение.

canWriteProgressive

protected boolean canWriteProgressive
Значение boolean, равное true, если этот ImageWriteParam позволяет записывать изображения в виде прогрессивной последовательности проходов с возрастающим качеством. По умолчанию значение равно false. Подклассы должны задавать значение вручную.

Подклассы, не поддерживающие прогрессивное кодирование, должны установить для этого значения false.

progressiveMode

protected int progressiveMode
Режим, определяющий параметры прогрессивного кодирования. Должен быть установлен в одно из четырех значений MODE_*, кроме MODE_EXPLICIT. Значение по умолчанию — MODE_COPY_FROM_METADATA.

Подклассы, не поддерживающие прогрессивное кодирование, могут игнорировать это значение.

См. также:
  • MODE_DISABLED
  • MODE_EXPLICIT
  • MODE_COPY_FROM_METADATA
  • MODE_DEFAULT
  • setProgressiveMode(int)
  • getProgressiveMode()

canWriteCompressed

protected boolean canWriteCompressed
Значение boolean, равное true, если это средство записи может записывать изображения с использованием сжатия. По умолчанию значение равно false. Подклассы должны задавать значение вручную.

Подклассы, не поддерживающие сжатие, должны установить для этого значения false.

compressionMode

protected int compressionMode
Режим, определяющий параметры сжатия. Должен быть установлен в одно из четырех значений MODE_*. Значение по умолчанию — MODE_COPY_FROM_METADATA.

Подклассы, не поддерживающие сжатие, могут игнорировать это значение.

См. также:
  • MODE_DISABLED
  • MODE_EXPLICIT
  • MODE_COPY_FROM_METADATA
  • MODE_DEFAULT
  • setCompressionMode(int)
  • getCompressionMode()

compressionTypes

protected String[] compressionTypes
Массив объектов String, содержащих названия доступных типов сжатия. Подклассы должны задавать значение вручную.

Подклассы, не поддерживающие сжатие, могут игнорировать это значение.

compressionType

protected String compressionType
Объект String, содержащий название текущего типа сжатия, или null, если тип не задан.

Подклассы, не поддерживающие сжатие, могут игнорировать это значение.

compressionQuality

protected float compressionQuality
Объект float, содержащий текущую настройку качества сжатия. Начальное значение — 1.0F.

Подклассы, не поддерживающие сжатие, могут игнорировать это значение.

locale

protected Locale locale
Объект Locale для локализации названий типов сжатия и описаний качества либо null для использования Locale по умолчанию. Подклассы должны задавать значение вручную.

Подробное описание конструкторов

ImageWriteParam

protected ImageWriteParam()
Создает пустой ImageWriteParam. Подкласс должен самостоятельно правильно настроить переменные экземпляра.

ImageWriteParam

public ImageWriteParam(Locale locale)
Создает ImageWriteParam, настроенный для использования заданного Locale.
Параметры:
locale — объект Locale для локализации названий типов сжатия и описаний качества либо null.

Подробное описание методов

getLocale

public Locale getLocale()
Возвращает текущий Locale или null, если поддерживается только Locale по умолчанию.
Возвращает:
текущий Locale или null.

canWriteTiles

public boolean canWriteTiles()
Возвращает true, если средство записи может выполнять разбиение на тайлы при записи. Если этот метод возвращает false, вызов setTiling приведет к UnsupportedOperationException.
Возвращает:
true, если средство записи поддерживает разбиение на тайлы.
См. также:
  • canOffsetTiles()
  • setTiling(int, int, int, int)

canOffsetTiles

public boolean canOffsetTiles()
Возвращает true, если средство записи может выполнять разбиение на тайлы с ненулевыми смещениями сетки при записи. Если этот метод возвращает false, вызов setTiling приведет к UnsupportedOperationException, если оба аргумента смещения сетки не равны нулю. Если canWriteTiles возвращает false, этот метод также вернет false.
Возвращает:
true, если средство записи поддерживает ненулевые смещения тайлов.
См. также:
  • canWriteTiles()
  • setTiling(int, int, int, int)

setTilingMode

public void setTilingMode(int mode)
Определяет, будет ли изображение разбито на тайлы в выходном потоке и, если будет, как будут определяться параметры разбиения. Режимы интерпретируются следующим образом:
  • MODE_DISABLED — изображение не будет разбито на тайлы. Вызов setTiling приведет к IllegalStateException.
  • MODE_DEFAULT — изображение будет разбито на тайлы с параметрами по умолчанию. Вызов setTiling приведет к IllegalStateException.
  • MODE_EXPLICIT — изображение будет разбито на тайлы согласно параметрам, заданным методом setTiling. Все ранее заданные параметры разбиения на тайлы отбрасываются.
  • MODE_COPY_FROM_METADATA — изображение будет соответствовать объекту метаданных, переданному при записи. Вызов setTiling приведет к IllegalStateException.
Параметры:
mode — режим разбиения на тайлы.
Вызывает:
UnsupportedOperationException — если canWriteTiles возвращает false.
IllegalArgumentException — если mode не является одним из перечисленных выше режимов.
См. также:
  • setTiling(int, int, int, int)
  • getTilingMode()

getTilingMode

public int getTilingMode()
Возвращает текущий режим разбиения на тайлы, если эта функция поддерживается. В противном случае вызывает UnsupportedOperationException.
Возвращает:
текущий режим разбиения на тайлы.
Вызывает:
UnsupportedOperationException — если canWriteTiles возвращает false.
См. также:
  • setTilingMode(int)

getPreferredTileSizes

public Dimension[] getPreferredTileSizes()
Возвращает массив объектов Dimension, указывающих допустимые диапазоны размеров тайлов при кодировании в выходном файле или потоке. Возвращаемый массив является копией.

Информация возвращается в виде набора пар: первый элемент пары содержит минимальные ширину и высоту (включительно), а второй — максимальные ширину и высоту (включительно). Каждая пара вместе задает допустимый диапазон размеров. Чтобы указать фиксированный размер, задайте одинаковые ширину и высоту для обоих элементов. Чтобы указать произвольный диапазон, вместо фактического массива объектов Dimension используется значение null.

Если при создании объекта массив не задан, но разбиение на тайлы разрешено, этот метод возвращает null.

Возвращает:
массив объектов Dimension четной длины, содержащий не менее двух элементов, или null.
Вызывает:
UnsupportedOperationException — если подключаемый модуль не поддерживает разбиение на тайлы.

setTiling

public void setTiling(int tileWidth, int tileHeight, int tileGridXOffset, int tileGridYOffset)
Задает разбиение изображения на тайлы в выходном потоке. Параметры tileWidth и tileHeight задают ширину и высоту тайлов в файле. Если ширина или высота тайла превышает ширину или высоту изображения, изображение не разбивается на тайлы по соответствующему измерению.

Если canOffsetTiles возвращает false, параметры tileGridXOffset и tileGridYOffset должны быть равны нулю.

Параметры:
tileWidth — ширина каждого тайла.
tileHeight — высота каждого тайла.
tileGridXOffset — горизонтальное смещение сетки тайлов.
tileGridYOffset — вертикальное смещение сетки тайлов.
Вызывает:
UnsupportedOperationException — если подключаемый модуль не поддерживает разбиение на тайлы.
IllegalStateException — если режим разбиения на тайлы не равен MODE_EXPLICIT.
UnsupportedOperationException — если подключаемый модуль не поддерживает смещения сетки и оба смещения сетки не равны нулю.
IllegalArgumentException — если размер тайла не входит ни в один из допустимых диапазонов, возвращаемых методом getPreferredTileSizes.
IllegalArgumentException — если tileWidth или tileHeight меньше либо равно 0.
См. также:
  • canWriteTiles
  • canOffsetTiles
  • getTileWidth()
  • getTileHeight()
  • getTileGridXOffset()
  • getTileGridYOffset()

unsetTiling

public void unsetTiling()
Удаляет все ранее заданные параметры сетки тайлов, установленные вызовами setTiling.

Реализация по умолчанию устанавливает для переменных экземпляра tileWidth, tileHeight, tileGridXOffset и tileGridYOffset значение 0.

Вызывает:
UnsupportedOperationException — если подключаемый модуль не поддерживает разбиение на тайлы.
IllegalStateException — если режим разбиения на тайлы не равен MODE_EXPLICIT.
См. также:
  • setTiling(int, int, int, int)

getTileWidth

public int getTileWidth()
Возвращает ширину каждого тайла изображения в том виде, в каком оно будет записано в выходной поток. Если параметры разбиения на тайлы не заданы, вызывается IllegalStateException.
Возвращает:
ширину тайла, используемую при кодировании.
Вызывает:
UnsupportedOperationException — если подключаемый модуль не поддерживает разбиение на тайлы.
IllegalStateException — если режим разбиения на тайлы не равен MODE_EXPLICIT.
IllegalStateException — если параметры разбиения на тайлы не заданы.
См. также:
  • setTiling(int, int, int, int)
  • getTileHeight()

getTileHeight

public int getTileHeight()
Возвращает высоту каждого тайла изображения в том виде, в каком оно будет записано в выходной поток. Если параметры разбиения на тайлы не заданы, вызывается IllegalStateException.
Возвращает:
высоту тайла, используемую при кодировании.
Вызывает:
UnsupportedOperationException — если подключаемый модуль не поддерживает разбиение на тайлы.
IllegalStateException — если режим разбиения на тайлы не равен MODE_EXPLICIT.
IllegalStateException — если параметры разбиения на тайлы не заданы.
См. также:
  • setTiling(int, int, int, int)
  • getTileWidth()

getTileGridXOffset

public int getTileGridXOffset()
Возвращает горизонтальное смещение сетки тайлов изображения в том виде, в каком оно будет записано в выходной поток. Если параметры разбиения на тайлы не заданы, вызывается IllegalStateException.
Возвращает:
смещение сетки тайлов по оси X, используемое при кодировании.
Вызывает:
UnsupportedOperationException — если подключаемый модуль не поддерживает разбиение на тайлы.
IllegalStateException — если режим разбиения на тайлы не равен MODE_EXPLICIT.
IllegalStateException — если параметры разбиения на тайлы не заданы.
См. также:
  • setTiling(int, int, int, int)
  • getTileGridYOffset()

getTileGridYOffset

public int getTileGridYOffset()
Возвращает вертикальное смещение сетки тайлов изображения в том виде, в каком оно будет записано в выходной поток. Если параметры разбиения на тайлы не заданы, вызывается IllegalStateException.
Возвращает:
смещение сетки тайлов по оси Y, используемое при кодировании.
Вызывает:
UnsupportedOperationException — если подключаемый модуль не поддерживает разбиение на тайлы.
IllegalStateException — если режим разбиения на тайлы не равен MODE_EXPLICIT.
IllegalStateException — если параметры разбиения на тайлы не заданы.
См. также:
  • setTiling(int, int, int, int)
  • getTileGridXOffset()

canWriteProgressive

public boolean canWriteProgressive()
Возвращает true, если средство записи может выводить изображения серией проходов с постепенно возрастающим качеством.
Возвращает:
true, если средство записи поддерживает прогрессивное кодирование.
См. также:
  • setProgressiveMode(int)
  • getProgressiveMode()

setProgressiveMode

public void setProgressiveMode(int mode)
Задает прогрессивный режим записи изображения, при котором поток содержит серию сканирований с возрастающим качеством. Если прогрессивное кодирование не поддерживается, будет вызвано UnsupportedOperationException.

Аргумент mode определяет способ выбора параметров прогрессивного кодирования и должен иметь значение MODE_DISABLED, MODE_COPY_FROM_METADATA или MODE_DEFAULT. В противном случае вызывается IllegalArgumentException.

Режимы интерпретируются следующим образом:

  • MODE_DISABLED — без прогрессивного кодирования. Используйте это значение, чтобы отключить его.
  • MODE_COPY_FROM_METADATA — выходное изображение будет использовать параметры прогрессивного кодирования из объектов метаданных, переданных средству записи.
  • MODE_DEFAULT — изображение будет записано в прогрессивном режиме с параметрами, выбранными средством записи.

Значение по умолчанию — MODE_COPY_FROM_METADATA.

Параметры:
mode — режим прогрессивного кодирования в выходном потоке.
Вызывает:
UnsupportedOperationException — если средство записи не поддерживает прогрессивное кодирование.
IllegalArgumentException — если mode не является одним из перечисленных выше режимов.
См. также:
  • getProgressiveMode()

getProgressiveMode

public int getProgressiveMode()
Возвращает текущий режим прогрессивной записи потока.
Возвращает:
текущий режим прогрессивного кодирования.
Вызывает:
UnsupportedOperationException — если средство записи не поддерживает прогрессивное кодирование.
См. также:
  • setProgressiveMode(int)

canWriteCompressed

public boolean canWriteCompressed()
Возвращает true, если это средство записи поддерживает сжатие.
Возвращает:
true, если средство записи поддерживает сжатие.

setCompressionMode

public void setCompressionMode(int mode)
Указывает, следует ли выполнять сжатие и, если да, как определять параметры сжатия. Аргумент mode должен быть одним из четырех режимов, которые интерпретируются следующим образом:
  • MODE_DISABLED — если режим установлен в MODE_DISABLED, методы, запрашивающие или изменяющие тип или параметры сжатия, будут выбрасывать IllegalStateException (если сжатие обычно поддерживается подключаемым модулем). Некоторые средства записи, например JPEG, обычно не предлагают несжатый вывод. В этом случае попытка установить режим MODE_DISABLED приведет к выбрасыванию UnsupportedOperationException, а режим не будет изменен.
  • MODE_EXPLICIT — выполнять сжатие с использованием типа сжатия и настроек качества, заданных в этом ImageWriteParam. Все ранее заданные параметры сжатия отбрасываются.
  • MODE_COPY_FROM_METADATA — использовать параметры сжатия, указанные в объектах метаданных, переданных средству записи.
  • MODE_DEFAULT — использовать параметры сжатия по умолчанию.

По умолчанию используется MODE_COPY_FROM_METADATA.

Параметры:
mode — режим задания сжатия в выходном потоке.
Выбрасывает:
UnsupportedOperationException — если средство записи не поддерживает сжатие или запрошенный режим.
IllegalArgumentException — если mode не является одним из перечисленных выше режимов.
См. также:
  • getCompressionMode()

getCompressionMode

public int getCompressionMode()
Возвращает текущий режим сжатия, если сжатие поддерживается.
Возвращает:
текущий режим сжатия.
Выбрасывает:
UnsupportedOperationException — если средство записи не поддерживает сжатие.
См. также:
  • setCompressionMode(int)

getCompressionTypes

public String[] getCompressionTypes()
Возвращает список доступных типов сжатия в виде массива String или null, если тип сжатия нельзя выбрать с помощью этих интерфейсов. Возвращаемый массив является копией.

Если средство записи предлагает только один обязательный вариант сжатия, указывать именованные типы сжатия не требуется. Именованные типы сжатия следует использовать только в тех случаях, когда пользователь может сделать осмысленный выбор между различными схемами.

Реализация по умолчанию проверяет, поддерживается ли сжатие, и, если нет, выбрасывает UnsupportedOperationException. В противном случае она возвращает копию переменной экземпляра compressionTypes, если та не равна null, иначе возвращает null.

Возвращает:
массив String с нелокализованными именами доступных типов сжатия или null.
Выбрасывает:
UnsupportedOperationException — если средство записи не поддерживает сжатие.

setCompressionType

public void setCompressionType(String compressionType)
Устанавливает тип сжатия в одно из значений, указанных в getCompressionTypes. Если передано значение null, все предыдущие настройки сбрасываются.

Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, она вызывает getCompressionTypes и проверяет, является ли compressionType допустимым значением. Если да, устанавливается переменная экземпляра compressionType. Если compressionType равен null, переменная экземпляра устанавливается без проверки.

Параметры:
compressionType — один из String, возвращаемых методом getCompressionTypes, или null для сброса всех предыдущих настроек.
Выбрасывает:
UnsupportedOperationException — если средство записи не поддерживает сжатие.
IllegalStateException — если режим сжатия не равен MODE_EXPLICIT.
UnsupportedOperationException — если нет доступных для установки типов сжатия.
IllegalArgumentException — если compressionType не равен null, но не является одним из значений, возвращаемых методом getCompressionTypes.
См. также:
  • getCompressionTypes()
  • getCompressionType()
  • unsetCompression()

getCompressionType

public String getCompressionType()
Возвращает текущий установленный тип сжатия или null, если тип не установлен. Тип возвращается как String из числа значений, возвращаемых методом getCompressionTypes. Если тип сжатия не установлен, возвращается null.

Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, она возвращает значение переменной экземпляра compressionType.

Возвращает:
текущий тип сжатия в виде String или null, если тип не установлен.
Выбрасывает:
UnsupportedOperationException — если средство записи не поддерживает сжатие.
IllegalStateException — если режим сжатия не равен MODE_EXPLICIT.
См. также:
  • setCompressionType(String)

unsetCompression

public void unsetCompression()
Сбрасывает все предыдущие настройки типа и качества сжатия.

Реализация по умолчанию устанавливает переменную экземпляра compressionType в значение null, а переменную экземпляра compressionQuality — в значение 1.0F.

Выбрасывает:
UnsupportedOperationException — если подключаемый модуль не поддерживает сжатие.
IllegalStateException — если режим сжатия не равен MODE_EXPLICIT.
См. также:
  • setCompressionType(String)
  • setCompressionQuality(float)

getLocalizedCompressionTypeName

public String getLocalizedCompressionTypeName()
Возвращает локализованную версию имени текущего типа сжатия, используя Locale, возвращаемое методом getLocale.

Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да и compressionType равен non-null, значение getCompressionType возвращается для удобства.

Возвращает:
String, содержащее локализованную версию имени текущего типа сжатия.
Выбрасывает:
UnsupportedOperationException — если средство записи не поддерживает сжатие.
IllegalStateException — если режим сжатия не равен MODE_EXPLICIT.
IllegalStateException — если тип сжатия не установлен.

isCompressionLossless

public boolean isCompressionLossless()
Возвращает true, если текущий тип сжатия обеспечивает сжатие без потерь. Если подключаемый модуль предоставляет только один обязательный тип сжатия, этот метод можно вызвать, не вызывая предварительно setCompressionType.

Если существует несколько типов сжатия, но ни один из них не установлен, выбрасывается IllegalStateException.

Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, и getCompressionTypes() равен null или getCompressionType() не равен null, для удобства возвращается true.

Возвращает:
true, если текущий тип сжатия не приводит к потере данных.
Выбрасывает:
UnsupportedOperationException — если средство записи не поддерживает сжатие.
IllegalStateException — если режим сжатия не равен MODE_EXPLICIT.
IllegalStateException — если набор допустимых типов сжатия не равен null, а текущий тип сжатия равен null.

setCompressionQuality

public void setCompressionQuality(float quality)
Устанавливает качество сжатия в диапазоне от 0 до 1. По умолчанию поддерживается только одна настройка качества сжатия; средства записи могут предоставлять расширенные версии ImageWriteParam с более широкими возможностями управления. Для схем сжатия с потерями качество сжатия должно определять компромисс между размером файла и качеством изображения (например, путем выбора таблиц квантования при записи изображений JPEG). Для схем сжатия без потерь качество сжатия может использоваться для управления компромиссом между размером файла и временем, затрачиваемым на сжатие (например, путем оптимизации фильтров строк и установки уровня сжатия ZLIB при записи изображений PNG).

Значение качества сжатия 0.0 обычно трактуется как «важно высокое сжатие», а значение 1.0 — как «важно высокое качество изображения».

Если существует несколько типов сжатия, но ни один из них не установлен, выбрасывается IllegalStateException.

Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, и метод getCompressionTypes() возвращает null или compressionType не равен null, устанавливается переменная экземпляра compressionQuality.

Параметры:
quality — значение float в диапазоне от 0 до 1, указывающее требуемый уровень качества.
Выбрасывает:
UnsupportedOperationException — если средство записи не поддерживает сжатие.
IllegalStateException — если режим сжатия не равен MODE_EXPLICIT.
IllegalStateException — если набор допустимых типов сжатия не равен null, а текущий тип сжатия равен null.
IllegalArgumentException — если quality не находится в диапазоне от 0 до 1 включительно.
См. также:
  • getCompressionQuality()

getCompressionQuality

public float getCompressionQuality()
Возвращает текущую настройку качества сжатия.

Если существует несколько типов сжатия, но ни один из них не установлен, выбрасывается IllegalStateException.

Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, и getCompressionTypes() равен null или getCompressionType() не равен null, она возвращает значение переменной экземпляра compressionQuality.

Возвращает:
текущую настройку качества сжатия.
Выбрасывает:
UnsupportedOperationException — если средство записи не поддерживает сжатие.
IllegalStateException — если режим сжатия не равен MODE_EXPLICIT.
IllegalStateException — если набор допустимых типов сжатия не равен null, а текущий тип сжатия равен null.
См. также:
  • setCompressionQuality(float)

getBitRate

public float getBitRate(float quality)
Возвращает float, представляющее оценку количества битов выходных данных на каждый бит данных входного изображения при заданном уровне качества. Обычно значение находится в диапазоне от 0 до 1; меньшие значения соответствуют более сильному сжатию. Специальное значение -1.0F используется для обозначения отсутствия оценки.

Если существует несколько типов сжатия, но ни один из них не установлен, выбрасывается IllegalStateException.

Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, и getCompressionTypes() равен null или getCompressionType() не равен null, а quality находится в допустимом диапазоне, возвращается -1.0.

Параметры:
quality — настройка качества, битовую скорость для которой требуется запросить.
Возвращает:
оценку битовой скорости сжатых данных или -1.0F, если оценка недоступна.
Выбрасывает:
UnsupportedOperationException — если средство записи не поддерживает сжатие.
IllegalStateException — если режим сжатия не равен MODE_EXPLICIT.
IllegalStateException — если набор допустимых типов сжатия не равен null, а текущий тип сжатия равен null.
IllegalArgumentException — если quality не находится в диапазоне от 0 до 1 включительно.

getCompressionQualityDescriptions

public String[] getCompressionQualityDescriptions()
Возвращает массив String, который можно использовать вместе с getCompressionQualityValues в пользовательском интерфейсе для установки или отображения уровня качества сжатия. Элемент String с индексом i описывает диапазон уровней качества от getCompressionQualityValues[i] до getCompressionQualityValues[i + 1]. Обратите внимание, что длина массива, возвращаемого методом getCompressionQualityValues, всегда на единицу больше длины массива, возвращаемого методом getCompressionQualityDescriptions.

Например, строки «Хорошо», «Лучше» и «Наилучшее» могут соответствовать диапазонам [0, .33), [.33, .66) и [.66, 1.0]. В этом случае метод getCompressionQualityDescriptions возвращает { "Good", "Better", "Best" }, а метод getCompressionQualityValues — { 0.0F, .33F, .66F, 1.0F }.

Если описания недоступны, возвращается null. Если метод getCompressionQualityValues возвращает null, этот метод также должен возвращать null.

Описания должны быть локализованы для Locale, возвращаемого методом getLocale, если он не равен null.

Если существует несколько типов сжатия, но ни один из них не установлен, выбрасывается IllegalStateException.

Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, и getCompressionTypes() равен null или getCompressionType() не равен null, она возвращает null.

Возвращает:
массив String с локализованными описаниями уровней качества сжатия.
Выбрасывает:
UnsupportedOperationException — если средство записи не поддерживает сжатие.
IllegalStateException — если режим сжатия не равен MODE_EXPLICIT.
IllegalStateException — если набор допустимых типов сжатия не равен null, а текущий тип сжатия равен null.
См. также:
  • getCompressionQualityValues()

getCompressionQualityValues

public float[] getCompressionQualityValues()
Возвращает массив float, который можно использовать вместе с getCompressionQualityDescriptions в пользовательском интерфейсе для установки или отображения уровня качества сжатия. Дополнительные сведения см. в разделе getCompressionQualityDescriptions.

Если описания недоступны, возвращается null. Если метод getCompressionQualityDescriptions возвращает null, этот метод также должен возвращать null.

Если существует несколько типов сжатия, но ни один из них не установлен, выбрасывается IllegalStateException.

Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, и getCompressionTypes() равен null или getCompressionType() не равен null, она возвращает null.

Возвращает:
массив float, указывающих границы между уровнями качества сжатия, описанными элементами String из getCompressionQualityDescriptions.
Выбрасывает:
UnsupportedOperationException — если средство записи не поддерживает сжатие.
IllegalStateException — если режим сжатия не равен MODE_EXPLICIT.
IllegalStateException — если набор допустимых типов сжатия не равен null, а текущий тип сжатия равен null.
См. также:
  • getCompressionQualityDescriptions()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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/ImageWriteParam.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API