Класс 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() |
Возвращает массив 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. |
Методы, объявленные в классе 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
boolean если этот 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 that is true if this writer can write images using compression. By default, the value is false. Subclasses must set the value manually. Subclasses that do not support compression must ensure that this value is set to false.
compressionMode
protected int compressionMode
MODE_* values. The default is MODE_COPY_FROM_METADATA. Subclasses that do not support compression may ignore this value.
compressionTypes
protected String[] compressionTypes
Strings containing the names of the available compression types. Subclasses must set the value manually. Subclasses that do not support compression may ignore this value.
compressionType
protected String compressionType
String containing the name of the current compression type, or null if none is set. Subclasses that do not support compression may ignore this value.
compressionQuality
protected float compressionQuality
float containing the current compression quality setting. The initial value is 1.0F. Subclasses that do not support compression may ignore this value.
locale
protected Locale locale
Locale to be used to localize compression type names and quality descriptions, or null to use a default Locale. Subclasses must set the value manually.Подробности конструкторов
ImageWriteParam
protected ImageWriteParam()
ImageWriteParam. It is up to the subclass to set up the instance variables properly.ImageWriteParam
public ImageWriteParam(Locale locale)
ImageWriteParam set to use a given Locale.- Parameters:
-
locale- aLocaleto be used to localize compression type names and quality descriptions, ornull.
Подробности методов
getLocale
public Locale getLocale()
Locale, or null if only a default Locale is supported.- Returns:
- the current
Locale, ornull.
canWriteTiles
public boolean canWriteTiles()
true if the writer can perform tiling while writing. If this method returns false, then setTiling will throw an UnsupportedOperationException.- Returns:
-
trueif the writer supports tiling. - See Also:
canOffsetTiles
public boolean canOffsetTiles()
true if the writer can perform tiling with non-zero grid offsets while writing. If this method returns false, then setTiling will throw an UnsupportedOperationException if the grid offset arguments are not both zero. If canWriteTiles returns false, this method will return false as well.- Returns:
-
trueif the writer supports non-zero tile offsets. - See Also:
setTilingMode
public void setTilingMode(int mode)
-
MODE_DISABLED- The image will not be tiled.setTilingwill throw anIllegalStateException. -
MODE_DEFAULT- The image will be tiled using default parameters.setTilingwill throw anIllegalStateException. -
MODE_EXPLICIT- The image will be tiled according to parameters given in thesetTilingmethod. Any previously set tiling parameters are discarded. -
MODE_COPY_FROM_METADATA- The image will conform to the metadata object passed in to a write.setTilingwill throw anIllegalStateException.
- Parameters:
-
mode- The mode to use for tiling. - Throws:
-
UnsupportedOperationException- ifcanWriteTilesreturnsfalse. -
IllegalArgumentException- ifmodeis not one of the modes listed above. - See Also:
getTilingMode
public int getTilingMode()
UnsupportedOperationException.- Returns:
- the current tiling mode.
- Throws:
-
UnsupportedOperationException- ifcanWriteTilesreturnsfalse. - See Also:
getPreferredTileSizes
public Dimension[] getPreferredTileSizes()
Dimensions indicating the legal size ranges for tiles as they will be encoded in the output file or stream. The returned array is a copy. The information is returned as a set of pairs; the first element of a pair contains an (inclusive) minimum width and height, and the second element contains an (inclusive) maximum width and height. Together, each pair defines a valid range of sizes. To specify a fixed size, use the same width and height for both elements. To specify an arbitrary range, a value of null is used in place of an actual array of Dimensions.
If no array is specified on the constructor, but tiling is allowed, then this method returns null.
- Returns:
- an array of
Dimensions with an even length of at least two, ornull. - Throws:
-
UnsupportedOperationException- if the plug-in does not support tiling.
setTiling
public void setTiling(int tileWidth, int tileHeight, int tileGridXOffset, int tileGridYOffset)
tileWidth and tileHeight parameters specify the width and height of the tiles in the file. If the tile width or height is greater than the width or height of the image, the image is not tiled in that dimension. If canOffsetTiles returns false, then the tileGridXOffset and tileGridYOffset parameters must be zero.
- Parameters:
-
tileWidth- the width of each tile. -
tileHeight- the height of each tile. -
tileGridXOffset- the horizontal offset of the tile grid. -
tileGridYOffset- the vertical offset of the tile grid. - Throws:
-
UnsupportedOperationException- if the plug-in does not support tiling. -
IllegalStateException- if the tiling mode is notMODE_EXPLICIT. -
UnsupportedOperationException- if the plug-in does not support grid offsets, and the grid offsets are not both zero. -
IllegalArgumentException- if the tile size is not within one of the allowable ranges returned bygetPreferredTileSizes. -
IllegalArgumentException- iftileWidthortileHeightis less than or equal to 0. - See Also:
unsetTiling
public void unsetTiling()
setTiling. The default implementation sets the instance variables tileWidth, tileHeight, tileGridXOffset, and tileGridYOffset to 0.
- Throws:
-
UnsupportedOperationException- if the plug-in does not support tiling. -
IllegalStateException- if the tiling mode is notMODE_EXPLICIT. - See Also:
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. - Возвращает:
- горизонтальное смещение сетки тайлов, используемое для кодирования.
- Выбрасывает:
-
UnsupportedOperationException- если плагин не поддерживает разбиение на тайлы. -
IllegalStateException- если режим разбиения на тайлы неMODE_EXPLICIT. -
IllegalStateException- если параметры разбиения на тайлы не заданы. - См. также:
getTileGridYOffset
public int getTileGridYOffset()
IllegalStateException. - Возвращает:
- вертикальное смещение сетки тайлов, используемое для кодирования.
- Выбрасывает:
-
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.
- Returns:
- текущий тип сжатия как
String, илиnullесли тип не задан. - Throws:
-
UnsupportedOperationException- если писатель не поддерживает сжатие. -
IllegalStateException- если режим сжатия неMODE_EXPLICIT. - See Also:
unsetCompression
public void unsetCompression()
Реализация по умолчанию устанавливает переменную экземпляра compressionType в null, и переменную экземпляра compressionQuality в 1.0F.
- Throws:
-
UnsupportedOperationException- если плагин не поддерживает сжатие. -
IllegalStateException- если режим сжатия неMODE_EXPLICIT. - See Also:
getLocalizedCompressionTypeName
public String getLocalizedCompressionTypeName()
Locale возвращённое getLocale. Реализация по умолчанию проверяет, поддерживается ли сжатие и режим сжатия MODE_EXPLICIT. Если да, если compressionType равно non-null, возвращается значение getCompressionType для удобства.
- Returns:
Stringсодержащий локализованную версию имени текущего типа сжатия.- Throws:
-
UnsupportedOperationException- если писатель не поддерживает сжатие. -
IllegalStateException- если режим сжатия неMODE_EXPLICIT. -
IllegalStateException- если тип сжатия не задан.
isCompressionLossless
public boolean isCompressionLossless()
true, если текущий тип сжатия обеспечивает без потерь сжатие. Если плагин предоставляет только один обязательный тип сжатия, то этот метод можно вызывать без предварительного вызова setCompressionType. Если есть несколько типов сжатия, но ни один не установлен, выбрасывается IllegalStateException.
Реализация по умолчанию проверяет, поддерживается ли сжатие и режим сжатия MODE_EXPLICIT. Если да, если getCompressionTypes() равно null или getCompressionType() не null, возвращается true для удобства.
- Returns:
-
trueесли текущий тип сжатия без потерь. - Throws:
-
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.
- Parameters:
-
quality- afloatот0до1, указывающий желаемый уровень качества. - Throws:
-
UnsupportedOperationException- если писатель не поддерживает сжатие. -
IllegalStateException- если режим сжатия неMODE_EXPLICIT. -
IllegalStateException- если набор допустимых типов сжатия неnullи текущий тип сжатияnull. -
IllegalArgumentException- еслиqualityне находится в диапазоне от0до1, включительно. - See Also:
getCompressionQuality
public float getCompressionQuality()
Если есть несколько типов сжатия, но ни один не установлен, выбрасывается IllegalStateException.
Реализация по умолчанию проверяет, поддерживается ли сжатие и режим сжатия MODE_EXPLICIT. Если да, если getCompressionTypes() равно null или getCompressionType() не null, возвращает значение переменной экземпляра compressionQuality.
- Returns:
- текущую настройку качества сжатия.
- Throws:
-
UnsupportedOperationException- если писатель не поддерживает сжатие. -
IllegalStateException- если режим сжатия неMODE_EXPLICIT. -
IllegalStateException- если набор допустимых типов сжатия неnullи текущий тип сжатияnull. - See Also:
getBitRate
public float getBitRate(float quality)
float , указывающий на оценку количества битов выходных данных для каждого бита входных данных изображения при заданном уровне качества. Значение обычно находится в диапазоне от 0 до 1, причём меньшие значения указывают на большее сжатие. Специальное значение -1.0F используется для указания того, что оценка недоступна. Если есть несколько типов сжатия, но ни один не установлен, выбрасывается IllegalStateException.
Реализация по умолчанию проверяет, поддерживается ли сжатие и режим сжатия MODE_EXPLICIT. Если да, если getCompressionTypes() равно null или getCompressionType() не null, и quality находится в пределах, возвращает -1.0.
- Parameters:
-
quality- настройка качества, скорость передачи данных которой требуется получить. - Returns:
- оценка скорости передачи данных при сжатии, или
-1.0Fесли оценка недоступна. - Throws:
-
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, 2021, 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/17/docs/api/java.desktop/javax/imageio/ImageWriteParam.html