Spec-Zone.ru › OpenJDK 17

Класс ImageWriteParam

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

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

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

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

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

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

См. также:
  • ImageReadParam

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

Модификатор и тип Поле Описание
protected boolean canOffsetTiles
boolean, который true, если этот ImageWriteParam позволяет задавать параметры смещения сетки плиток.
protected boolean canWriteCompressed
boolean, который true, если этот писатель может записывать изображения с использованием сжатия.
protected boolean canWriteProgressive
boolean, который true, если этот ImageWriteParam позволяет записывать изображения как прогрессивную последовательность проходов с увеличением качества.
protected boolean canWriteTiles
boolean, который true, если этот ImageWriteParam позволяет задавать параметры ширины и высоты плитки.
protected int compressionMode
Режим, контролирующий настройки сжатия, который должен быть установлен на одно из четырёх значений MODE_*.
protected float compressionQuality
float , содержащий текущую настройку качества сжатия.
protected String compressionType
String , содержащий имя текущего типа сжатия или null, если он не установлен.
protected String[] compressionTypes
Массив 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

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

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

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

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

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

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

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

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

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

MODE_DISABLED

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

MODE_DEFAULT

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

MODE_EXPLICIT

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

MODE_COPY_FROM_METADATA

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

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

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

canWriteTiles

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

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

tilingMode

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

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

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

preferredTileSizes

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

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

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

tilingSet

protected boolean tilingSet
Флаг, который true если параметры плитки были заданы.

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

tileWidth

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

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

tileHeight

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

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

canOffsetTiles

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

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

tileGridXOffset

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

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

tileGridYOffset

protected int tileGridYOffset
Величина смещения начала сетки плиток по вертикали от начала изображения, если плитка задана, или 0 в противном случае. Исходное значение — 0.

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

canWriteProgressive

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

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

progressiveMode

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

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

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

canWriteCompressed

protected boolean canWriteCompressed
A 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
The mode controlling compression settings, which must be set to one of the four MODE_* values. The default is MODE_COPY_FROM_METADATA.

Subclasses that do not support compression may ignore this value.

See Also:
  • MODE_DISABLED
  • MODE_EXPLICIT
  • MODE_COPY_FROM_METADATA
  • MODE_DEFAULT
  • setCompressionMode(int)
  • getCompressionMode()

compressionTypes

protected String[] compressionTypes
An array of 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
A 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
A 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
A 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()
Constructs an empty ImageWriteParam. It is up to the subclass to set up the instance variables properly.

ImageWriteParam

public ImageWriteParam(Locale locale)
Constructs an ImageWriteParam set to use a given Locale.
Parameters:
locale - a Locale to be used to localize compression type names and quality descriptions, or null.

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

getLocale

public Locale getLocale()
Returns the currently set Locale, or null if only a default Locale is supported.
Returns:
the current Locale, or null.

canWriteTiles

public boolean canWriteTiles()
Returns true if the writer can perform tiling while writing. If this method returns false, then setTiling will throw an UnsupportedOperationException.
Returns:
true if the writer supports tiling.
See Also:
  • canOffsetTiles()
  • setTiling(int, int, int, int)

canOffsetTiles

public boolean canOffsetTiles()
Returns 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:
true if the writer supports non-zero tile offsets.
See Also:
  • canWriteTiles()
  • setTiling(int, int, int, int)

setTilingMode

public void setTilingMode(int mode)
Determines whether the image will be tiled in the output stream and, if it will, how the tiling parameters will be determined. The modes are interpreted as follows:
  • MODE_DISABLED - The image will not be tiled. setTiling will throw an IllegalStateException.
  • MODE_DEFAULT - The image will be tiled using default parameters. setTiling will throw an IllegalStateException.
  • MODE_EXPLICIT - The image will be tiled according to parameters given in the setTiling method. Any previously set tiling parameters are discarded.
  • MODE_COPY_FROM_METADATA - The image will conform to the metadata object passed in to a write. setTiling will throw an IllegalStateException.
Parameters:
mode - The mode to use for tiling.
Throws:
UnsupportedOperationException - if canWriteTiles returns false.
IllegalArgumentException - if mode is not one of the modes listed above.
See Also:
  • setTiling(int, int, int, int)
  • getTilingMode()

getTilingMode

public int getTilingMode()
Returns the current tiling mode, if tiling is supported. Otherwise throws an UnsupportedOperationException.
Returns:
the current tiling mode.
Throws:
UnsupportedOperationException - if canWriteTiles returns false.
See Also:
  • setTilingMode(int)

getPreferredTileSizes

public Dimension[] getPreferredTileSizes()
Returns an array of 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, or null.
Throws:
UnsupportedOperationException - if the plug-in does not support tiling.

setTiling

public void setTiling(int tileWidth, int tileHeight, int tileGridXOffset, int tileGridYOffset)
Specifies that the image should be tiled in the output stream. The 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 not MODE_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 by getPreferredTileSizes.
IllegalArgumentException - if tileWidth or tileHeight is less than or equal to 0.
See Also:
  • canWriteTiles
  • canOffsetTiles
  • getTileWidth()
  • getTileHeight()
  • getTileGridXOffset()
  • getTileGridYOffset()

unsetTiling

public void unsetTiling()
Removes any previous tile grid parameters specified by calls to 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 not MODE_EXPLICIT.
See Also:
  • setTiling(int, int, int, int)

getTileWidth

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

getTileHeight

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

getTileGridXOffset

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

getTileGridYOffset

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

canWriteProgressive

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

setProgressiveMode

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

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

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

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

По умолчанию MODE_COPY_FROM_METADATA.

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

getProgressiveMode

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

canWriteCompressed

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

setCompressionMode

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

По умолчанию MODE_COPY_FROM_METADATA.

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

getCompressionMode

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

getCompressionTypes

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

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

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

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

setCompressionType

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

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

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

getCompressionType

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

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

Returns:
текущий тип сжатия как String, или null если тип не задан.
Throws:
UnsupportedOperationException - если писатель не поддерживает сжатие.
IllegalStateException - если режим сжатия не MODE_EXPLICIT.
See Also:
  • setCompressionType(java.lang.String)

unsetCompression

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

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

Throws:
UnsupportedOperationException - если плагин не поддерживает сжатие.
IllegalStateException - если режим сжатия не MODE_EXPLICIT.
See Also:
  • setCompressionType(java.lang.String)
  • setCompressionQuality(float)

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 - a float от 0 до 1 , указывающий желаемый уровень качества.
Throws:
UnsupportedOperationException - если писатель не поддерживает сжатие.
IllegalStateException - если режим сжатия не MODE_EXPLICIT.
IllegalStateException - если набор допустимых типов сжатия не null и текущий тип сжатия null.
IllegalArgumentException - если quality не находится в диапазоне от 0 до 1, включительно.
See Also:
  • getCompressionQuality()

getCompressionQuality

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

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

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

Returns:
текущую настройку качества сжатия.
Throws:
UnsupportedOperationException - если писатель не поддерживает сжатие.
IllegalStateException - если режим сжатия не MODE_EXPLICIT.
IllegalStateException - если набор допустимых типов сжатия не null и текущий тип сжатия null.
See Also:
  • setCompressionQuality(float)

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()

getCompressionQualityValues

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

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

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

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

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

© 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

Spec-Zone.ru

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