Класс 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 int MODE_COPY_FROM_METADATA

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

static int MODE_DEFAULT

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

static int MODE_DISABLED

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

static 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.

ImageWriteParam​(Locale locale)

Создаёт 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()

Возвращает массив 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​(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

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

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

tilingMode

protected int tilingMode

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

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

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

preferredTileSizes

protected Dimension[] preferredTileSizes

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

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

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

tilingSet

protected boolean tilingSet

Значение, которое равно 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

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

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

compressionMode

protected int compressionMode

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

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

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

compressionTypes

protected String[] compressionTypes

Массив String содержащих имена доступных типов сжатия. Подклассы должны устанавливать значение вручную.

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

compressionType

protected String compressionType

A String содержащий имя текущего типа сжатия или null если не задано.

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

compressionQuality

protected float compressionQuality

A float содержащий текущую настройку качества сжатия. Начальное значение — 1.0F.

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

locale

protected Locale locale

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

Конструкторы

ImageWriteParam

protected ImageWriteParam()

Создаёт пустой ImageWriteParam. Подклассу необходимо правильно настроить переменные экземпляра.

ImageWriteParam

public ImageWriteParam(Locale locale)

Создаёт ImageWriteParam, настроенный для использования заданного Locale.

Параметры:
locale — Locale для локализации имен типов сжатия и описаний качества или null.

Методы

getLocale

public Locale getLocale()

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

Возвращает:
текущее Locale, или null.

canWriteTiles

public boolean canWriteTiles()

Возвращает true, если писатель может выполнять разбиение на плитки при записи. Если этот метод возвращает false, то setTiling выбросит UnsupportedOperationException.

Возвращает:
true если писатель поддерживает разбиение на плитки.
См. также:
canOffsetTiles(), setTiling(int, int, int, int)

canOffsetTiles

public boolean canOffsetTiles()

Возвращает true, если писатель может выполнять разбиение на плитки с не нулевыми смещениями сетки при записи. Если этот метод возвращает false, то setTiling выбросит UnsupportedOperationException, если аргументы смещения сетки не оба нулевые. Если canWriteTiles возвращает false, этот метод также вернёт false.

Возвращает:
true если писатель поддерживает не нулевые смещения плиток.
См. также:
canWriteTiles(), setTiling(int, int, int, int)

setTilingMode

public void setTilingMode(int mode)

Определяет, будет ли изображение разбиено на плитки в выходном потоке и, если будет, как будут определены параметры разбиения. Режимы интерпретируются следующим образом:

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

Параметры:
mode - Режим, используемый для разбиения на плитки.
Исключения:
UnsupportedOperationException - если canWriteTiles возвращает false.
IllegalArgumentException - если mode не является одним из режимов, перечисленных выше.
См. также:
setTiling(int, int, int, int), getTilingMode()

getTilingMode

public int getTilingMode()

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

Возвращает:
текущий режим разбиения на плитки.
Исключения:
UnsupportedOperationException - если canWriteTiles возвращает false.
См. также:
setTilingMode(int)

getPreferredTileSizes

public Dimension[] getPreferredTileSizes()

Возвращает массив Dimensions, указывающий допустимые диапазоны размеров плиток, как они будут закодированы в выходном файле или потоке. Возвращаемый массив является копией.

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

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

Возвращает:
массив Dimensions с чётной длиной не менее двух, или null.
Исключения:
UnsupportedOperationException - если плагин не поддерживает разбиение на плитки.

setTiling

public void setTiling(int tileWidth,
                      int tileHeight,
                      int tileGridXOffset,
                      int tileGridYOffset)

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

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

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

unsetTiling

public void unsetTiling()

Удаляет любые предыдущие параметры сетки плиток, заданные вызовами setTiling.

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

Исключения:
UnsupportedOperationException - если плагин не поддерживает разбиение на плитки.
IllegalStateException - если режим разбиения на плитки не MODE_EXPLICIT.
См. также:
setTiling(int, int, int, int)

getTileWidth

public int getTileWidth()

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

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

getTileHeight

public int getTileHeight()

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

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

getTileGridXOffset

public int getTileGridXOffset()

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

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

getTileGridYOffset

public int getTileGridYOffset()

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

Возвращает:
смещение сетки плиток по оси Y, используемое для кодирования.
Исключения:
UnsupportedOperationException - если плагин не поддерживает разбиение на плитки.
IllegalStateException - если режим разбиения на плитки не MODE_EXPLICIT.
IllegalStateException - если параметры разбиения на плитки не были установлены.
См. также:
setTiling(int, int, int, int), getTileGridXOffset()

canWriteProgressive()

public boolean canWriteProgressive()

Возвращает true если писатель может записывать изображения как серию проходов с постоянно увеличивающимся качеством.

Возвращает:
true если писатель поддерживает прогрессивное кодирование.
См. также:
setProgressiveMode(int), getProgressiveMode()

setProgressiveMode

public void setProgressiveMode(int mode)

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

Аргумент режима определяет, как выбираются параметры прогрессии, и должен быть либо MODE_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 не пустое, но не является одним из значений, возвращаемых getCompressionTypes.
См. также:
getCompressionTypes(), getCompressionType(), unsetCompression()

getCompressionType

public String getCompressionType()

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

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

Возвращает:
текущий тип сжатия как String, или null если тип не установлен.
Исключения:
UnsupportedOperationException - если писатель не поддерживает сжатие.
IllegalStateException - если режим сжатия не MODE_EXPLICIT.
См. также:
setCompressionType(java.lang.String)

unsetCompression

public void unsetCompression()

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

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

Исключения:
UnsupportedOperationException - если плагин не поддерживает сжатие.
IllegalStateException - если режим сжатия не MODE_EXPLICIT.
См. также:
setCompressionType(java.lang.String), setCompressionQuality(float)

getLocalizedCompressionTypeName

public String getLocalizedCompressionTypeName()

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

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

Возвращает:
String содержащий локализованную версию имени текущего типа сжатия.
Исключения:
UnsupportedOperationException - если писатель не поддерживает сжатие.
IllegalStateException - если режим сжатия не MODE_EXPLICIT.
IllegalStateException - если тип сжатия не установлен.

isCompressionLossless

public boolean isCompressionLossless()

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

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

Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, если getCompressionTypes() равно null или getCompressionType() не пустое, 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 не пустое, она устанавливает compressionQuality переменную-член.

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

getCompressionQuality

public float getCompressionQuality()

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

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

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

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

getBitRate

public float getBitRate(float quality)

Возвращает значение, представляющее оценку количества битов выходных данных на бит входных данных изображения при данном уровне качества. Значение обычно лежит между 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()

Возвращает массив строк, которые могут быть использованы вместе с getCompressionQualityValues в пользовательском интерфейсе для установки или отображения уровня качества сжатия. Элемент массива с индексом 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. Если null возвращается из getCompressionQualityValues, этот метод также должен вернуть null.

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

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

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

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

getCompressionQualityValues

public float[] getCompressionQualityValues()

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

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

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

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

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

© 1993, 2020, 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/11/docs/api/java.desktop/javax/imageio/ImageWriteParam.html

Spec-Zone .ru
спецификации, руководства, описания, API