Класс 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 |
Массив String, содержащий имена доступных типов сжатия. |
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, если параметры разбиения на плитки заданы. |
Поля, объявленные в классе javax.imageio.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() |
Возвращает массив String, который можно использовать вместе с getCompressionQualityValues в качестве части пользовательского интерфейса для установки или отображения уровня качества сжатия. |
float[] |
getCompressionQualityValues() |
Возвращает массив float, который можно использовать вместе с getCompressionQualityDescriptions в качестве части пользовательского интерфейса для установки или отображения уровня качества сжатия. |
String |
getCompressionType() |
Возвращает текущий тип сжатия или null, если он не был установлен. |
String[] |
getCompressionTypes() |
Возвращает список доступных типов сжатия в виде массива или String или null, если тип сжатия не может быть выбран с помощью этих интерфейсов. |
Locale |
getLocale() |
Возвращает текущую установленную Locale или null, если поддерживается только значение по умолчанию Locale. |
String |
getLocalizedCompressionTypeName() |
Возвращает локализованное имя текущего типа сжатия, используя Locale, возвращаемое getLocale. |
Dimension[] |
getPreferredTileSizes() |
Возвращает массив Dimension, указывающий допустимые диапазоны размеров плиток, как они будут закодированы в выходном файле или потоке. |
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. |
Методы, объявленные в классе javax.imageio.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
true, если этот ImageWriteParam позволяет установить параметры ширины и высоты плиток. По умолчанию значение равно false. Подклассы должны устанавливать значение вручную. Подклассы, которые не поддерживают запись плиток, должны убедиться, что это значение установлено в false.
tilingMode
protected int tilingMode
MODE_* значений. Значение по умолчанию — MODE_COPY_FROM_METADATA. Подклассы, которые не выполняют запись плиток, могут игнорировать это значение.
- См. также:
preferredTileSizes
protected Dimension[] preferredTileSizes
null, что указывает на отсутствие предпочтительных размеров. Если значение отлично от null, оно должно иметь чётную длину не менее двух. Подклассы, которые не поддерживают запись плиток, могут игнорировать это значение.
- См. также:
tilingSet
protected boolean tilingSet
true, если параметры разбиения на плитки были указаны. Подклассы, которые не поддерживают запись плиток, могут игнорировать это значение.
tileWidth
protected int tileWidth
Подклассы, которые не поддерживают разбиение на плитки, могут игнорировать это значение.
tileHeight
protected int tileHeight
0. Подклассы, которые не поддерживают разбиение на плитки, могут игнорировать это значение.
canOffsetTiles
protected boolean canOffsetTiles
true, если этот ImageWriteParam позволяет задавать параметры смещения сетки плиток. По умолчанию значение равно false. Подклассы должны устанавливать значение вручную. Подклассы, которые не поддерживают запись плиток или которые поддерживают запись, но не смещение плиток, должны убедиться, что это значение установлено в false.
tileGridXOffset
protected int tileGridXOffset
0. Подклассы, которые не поддерживают смещение плиток, могут игнорировать это значение.
tileGridYOffset
protected int tileGridYOffset
0. Подклассы, которые не поддерживают смещение плиток, могут игнорировать это значение.
canWriteProgressive
protected boolean canWriteProgressive
true, если этот ImageWriteParam позволяет записывать изображения как прогрессивную последовательность проходов с увеличивающимся качеством. По умолчанию значение равно false. Подклассы должны устанавливать значение вручную. Подклассы, которые не поддерживают прогрессивное кодирование, должны убедиться, что это значение установлено в false.
progressiveMode
protected int progressiveMode
MODE_* значений, за исключением MODE_EXPLICIT. По умолчанию используется MODE_COPY_FROM_METADATA. Подклассы, которые не поддерживают прогрессивное кодирование, могут игнорировать это значение.
- См. также:
canWriteCompressed
protected boolean canWriteCompressed
boolean ли этот модуль записи способен записывать изображения сжатыми. По умолчанию, значение равно 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, указывающий допустимые диапазоны размеров плиток при кодировании в выходной файл или поток. Возвращаемый массив является копией. Информация возвращается в виде пар; первый элемент пары содержит минимальную ширину и высоту (включительно), а второй элемент содержит максимальную ширину и высоту (включительно). Вместе каждая пара определяет допустимый диапазон размеров. Чтобы указать фиксированный размер, используйте одинаковые значения ширины и высоты для обоих элементов. Для указания произвольного диапазона используется значение null вместо фактического массива Dimension.
Если на этапе конструирования массив не указан, но разбиение на плитки разрешено, этот метод возвращает 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_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.
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. -
IllegalArgumentException- еслиqualityне находится между0и1включительно. - См. также:
getCompressionQuality
public float getCompressionQuality()
Если есть несколько типов сжатия, но ни один не установлен, будет брошено исключение IllegalStateException.
Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, то если getCompressionTypes() равно null или getCompressionType() не равно null, она возвращает значение переменной состояния compressionQuality.
- Возвращает:
- текущую настройку качества сжатия.
- Бросает:
-
UnsupportedOperationException- если запись не поддерживает сжатие. -
IllegalStateException- если режим сжатия неMODE_EXPLICIT. -
IllegalStateException- если множество допустимых типов сжатия не пусто и текущий тип сжатия равен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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/imageio/ImageWriteParam.html