Класс 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 (например, прогрессивное кодирование необязательно, но поддержка субдискретизации обязательна).
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт пустой ImageWriteParam. |
|
| Создаёт ImageWriteParam, настроенный для использования заданного Locale. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
canOffsetTiles() |
Возвращает true, если средство записи может выполнять разбиение на тайлы с ненулевыми смещениями сетки во время записи. |
boolean |
canWriteCompressed() |
Возвращает true, если это средство записи поддерживает сжатие. |
boolean |
canWriteProgressive() |
Возвращает true, если средство записи может записывать изображения в виде серии проходов с постепенно возрастающим качеством. |
boolean |
canWriteTiles() |
Возвращает true, если средство записи может выполнять разбиение на тайлы во время записи. |
float |
getBitRate |
Возвращает 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 |
Задаёт, следует ли выполнять сжатие и, если да, как определять параметры сжатия. |
void |
setCompressionQuality |
Задаёт качество сжатия значением от 0 до 1. |
void |
setCompressionType |
Задаёт тип сжатия одним из значений, указанных в getCompressionTypes. |
void |
setProgressiveMode |
Задаёт режим прогрессивной записи изображения, при котором поток будет содержать серию сканирований с возрастающим качеством. |
void |
setTiling |
Задаёт разбиение изображения на тайлы в выходном потоке. |
void |
setTilingMode |
Определяет, будет ли изображение разбито на тайлы в выходном потоке и, если да, как будут определяться параметры разбиения. |
void |
unsetCompression() |
Удаляет все ранее заданные параметры типа и качества сжатия. |
void |
unsetTiling() |
Удаляет все ранее заданные параметры сетки тайлов, установленные вызовами setTiling. |
Методы, объявленные в классе IIOParam
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
Подробное описание полей
MODE_DISABLED
public static final int MODE_DISABLED
setTilingMode, setProgressiveMode и setCompressionMode, чтобы отключить функцию для последующих операций записи. То есть, если установлен этот режим, поток не будет разбит на тайлы, прогрессивным или сжатым, а соответствующие методы доступа вызовут IllegalStateException.- См. также:
MODE_DEFAULT
public static final int MODE_DEFAULT
setTilingMode, setProgressiveMode и setCompressionMode, чтобы включить эту функцию для последующих операций записи. То есть, если этот режим включен, поток будет разбит на тайлы, станет прогрессивным или будет сжат в соответствии с разумными значениями по умолчанию, выбранными внутри средства записи; выбор зависит от подключаемого модуля. Соответствующие методы доступа вызовут IllegalStateException.- См. также:
MODE_EXPLICIT
public static final int MODE_EXPLICIT
setTilingMode или setCompressionMode, чтобы включить функцию для последующих операций записи. То есть, если установлен этот режим, поток будет разбит на тайлы или сжат в соответствии с дополнительной информацией, переданной в соответствующие методы set этого класса и доступной через соответствующие методы get. Обратите внимание, что этот режим не поддерживается для прогрессивного вывода.- См. также:
MODE_COPY_FROM_METADATA
public static final int MODE_COPY_FROM_METADATA
setTilingMode, setProgressiveMode или setCompressionMode, чтобы включить эту функцию для последующих операций записи. То есть, если этот режим включен, поток будет разбит на тайлы, станет прогрессивным или будет сжат на основе содержимого метаданных потока и/или изображения, переданных операции записи, а все соответствующие методы доступа вызовут IllegalStateException. Это режим по умолчанию для всех функций, поэтому чтение с метаданными, за которым следует запись с метаданными, сохранит как можно больше информации.
- См. также:
canWriteTiles
protected boolean canWriteTiles
boolean, равное true, если этот ImageWriteParam позволяет задавать параметры ширины и высоты тайла. По умолчанию значение равно false. Подклассы должны задавать значение вручную. Подклассы, не поддерживающие запись тайлов, должны установить для этого значения false.
tilingMode
protected int tilingMode
MODE_*. Значение по умолчанию — MODE_COPY_FROM_METADATA. Подклассы, не поддерживающие запись тайлов, могут игнорировать это значение.
- См. также:
preferredTileSizes
protected Dimension[] preferredTileSizes
null, что означает отсутствие предпочтительных размеров. Если значение не равно null, его длина должна быть четной и составлять не менее двух элементов. Подклассы, не поддерживающие запись тайлов, могут игнорировать это значение.
- См. также:
tilingSet
protected boolean tilingSet
boolean, равное true, если параметры разбиения на тайлы заданы. Подклассы, не поддерживающие запись тайлов, могут игнорировать это значение.
tileWidth
protected int tileWidth
Подклассы, не поддерживающие разбиение на тайлы, могут игнорировать это значение.
tileHeight
protected int tileHeight
0. Подклассы, не поддерживающие разбиение на тайлы, могут игнорировать это значение.
canOffsetTiles
protected boolean canOffsetTiles
boolean, равное true, если этот ImageWriteParam позволяет задавать параметры смещения сетки тайлов. По умолчанию значение равно false. Подклассы должны задавать значение вручную. Подклассы, не поддерживающие запись тайлов или поддерживающие ее, но не поддерживающие смещение тайлов, должны установить для этого значения false.
tileGridXOffset
protected int tileGridXOffset
0. Подклассы, не поддерживающие смещение тайлов, могут игнорировать это значение.
tileGridYOffset
protected int tileGridYOffset
0. Подклассы, не поддерживающие смещение тайлов, могут игнорировать это значение.
canWriteProgressive
protected boolean canWriteProgressive
boolean, равное true, если этот ImageWriteParam позволяет записывать изображения в виде прогрессивной последовательности проходов с возрастающим качеством. По умолчанию значение равно false. Подклассы должны задавать значение вручную. Подклассы, не поддерживающие прогрессивное кодирование, должны установить для этого значения false.
progressiveMode
protected int progressiveMode
MODE_*, кроме MODE_EXPLICIT. Значение по умолчанию — MODE_COPY_FROM_METADATA. Подклассы, не поддерживающие прогрессивное кодирование, могут игнорировать это значение.
- См. также:
canWriteCompressed
protected boolean canWriteCompressed
boolean, равное true, если это средство записи может записывать изображения с использованием сжатия. По умолчанию значение равно false. Подклассы должны задавать значение вручную. Подклассы, не поддерживающие сжатие, должны установить для этого значения false.
compressionMode
protected int compressionMode
MODE_*. Значение по умолчанию — MODE_COPY_FROM_METADATA. Подклассы, не поддерживающие сжатие, могут игнорировать это значение.
- См. также:
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
public boolean canOffsetTiles()
true, если средство записи может выполнять разбиение на тайлы с ненулевыми смещениями сетки при записи. Если этот метод возвращает false, вызов setTiling приведет к UnsupportedOperationException, если оба аргумента смещения сетки не равны нулю. Если canWriteTiles возвращает false, этот метод также вернет false.- Возвращает:
-
true, если средство записи поддерживает ненулевые смещения тайлов. - См. также:
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не является одним из перечисленных выше режимов. - См. также:
getTilingMode
public int getTilingMode()
UnsupportedOperationException.- Возвращает:
- текущий режим разбиения на тайлы.
- Вызывает:
-
UnsupportedOperationException— еслиcanWriteTilesвозвращаетfalse. - См. также:
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. - См. также:
unsetTiling
public void unsetTiling()
setTiling. Реализация по умолчанию устанавливает для переменных экземпляра tileWidth, tileHeight, tileGridXOffset и tileGridYOffset значение 0.
- Вызывает:
-
UnsupportedOperationException— если подключаемый модуль не поддерживает разбиение на тайлы. -
IllegalStateException— если режим разбиения на тайлы не равенMODE_EXPLICIT. - См. также:
getTileWidth
public int getTileWidth()
IllegalStateException.- Возвращает:
- ширину тайла, используемую при кодировании.
- Вызывает:
-
UnsupportedOperationException— если подключаемый модуль не поддерживает разбиение на тайлы. -
IllegalStateException— если режим разбиения на тайлы не равенMODE_EXPLICIT. -
IllegalStateException— если параметры разбиения на тайлы не заданы. - См. также:
getTileHeight
public int getTileHeight()
IllegalStateException.- Возвращает:
- высоту тайла, используемую при кодировании.
- Вызывает:
-
UnsupportedOperationException— если подключаемый модуль не поддерживает разбиение на тайлы. -
IllegalStateException— если режим разбиения на тайлы не равенMODE_EXPLICIT. -
IllegalStateException— если параметры разбиения на тайлы не заданы. - См. также:
getTileGridXOffset
public int getTileGridXOffset()
IllegalStateException.- Возвращает:
- смещение сетки тайлов по оси X, используемое при кодировании.
- Вызывает:
-
UnsupportedOperationException— если подключаемый модуль не поддерживает разбиение на тайлы. -
IllegalStateException— если режим разбиения на тайлы не равенMODE_EXPLICIT. -
IllegalStateException— если параметры разбиения на тайлы не заданы. - См. также:
getTileGridYOffset
public int getTileGridYOffset()
IllegalStateException.- Возвращает:
- смещение сетки тайлов по оси Y, используемое при кодировании.
- Вызывает:
-
UnsupportedOperationException— если подключаемый модуль не поддерживает разбиение на тайлы. -
IllegalStateException— если режим разбиения на тайлы не равенMODE_EXPLICIT. -
IllegalStateException— если параметры разбиения на тайлы не заданы. - См. также:
canWriteProgressive
public boolean canWriteProgressive()
true, если средство записи может выводить изображения серией проходов с постепенно возрастающим качеством.- Возвращает:
-
true, если средство записи поддерживает прогрессивное кодирование. - См. также:
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
public int getProgressiveMode()
- Возвращает:
- текущий режим прогрессивного кодирования.
- Вызывает:
-
UnsupportedOperationException— если средство записи не поддерживает прогрессивное кодирование. - См. также:
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
public int getCompressionMode()
- Возвращает:
- текущий режим сжатия.
- Выбрасывает:
-
UnsupportedOperationException— если средство записи не поддерживает сжатие. - См. также:
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. - См. также:
getCompressionType
public String getCompressionType()
null, если тип не установлен. Тип возвращается как String из числа значений, возвращаемых методом getCompressionTypes. Если тип сжатия не установлен, возвращается null. Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, она возвращает значение переменной экземпляра compressionType.
- Возвращает:
- текущий тип сжатия в виде
Stringилиnull, если тип не установлен. - Выбрасывает:
-
UnsupportedOperationException— если средство записи не поддерживает сжатие. -
IllegalStateException— если режим сжатия не равенMODE_EXPLICIT. - См. также:
unsetCompression
public void unsetCompression()
Реализация по умолчанию устанавливает переменную экземпляра compressionType в значение null, а переменную экземпляра compressionQuality — в значение 1.0F.
- Выбрасывает:
-
UnsupportedOperationException— если подключаемый модуль не поддерживает сжатие. -
IllegalStateException— если режим сжатия не равенMODE_EXPLICIT. - См. также:
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
public float getCompressionQuality()
Если существует несколько типов сжатия, но ни один из них не установлен, выбрасывается IllegalStateException.
Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, и getCompressionTypes() равен null или getCompressionType() не равен null, она возвращает значение переменной экземпляра compressionQuality.
- Возвращает:
- текущую настройку качества сжатия.
- Выбрасывает:
-
UnsupportedOperationException— если средство записи не поддерживает сжатие. -
IllegalStateException— если режим сжатия не равенMODE_EXPLICIT. -
IllegalStateException— если набор допустимых типов сжатия не равенnull, а текущий тип сжатия равенnull. - См. также:
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
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. - См. также:
© 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