Spec-Zone.ru › OpenJDK 8

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

Массив Strings, содержащий имена доступных типов сжатия.

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

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

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

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

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

compressionQuality

protected float compressionQuality

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

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

locale

protected Locale locale

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

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

ImageWriteParam

protected ImageWriteParam()

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

ImageWriteParam

public ImageWriteParam(Locale locale)

Создаёт ImageWriteParam с использованием заданного Locale.

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

Методы

getLocale

public Locale getLocale()

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

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

canWriteTiles

public boolean canWriteTiles()

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

Возвращает:
true если модуль записи поддерживает разбиение на тайлы.
См. также:
canOffsetTiles(), 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()

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

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

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

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

setTiling

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

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

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

Параметры:
tileWidth - ширина каждого тайла.
tileHeight - высота каждого тайла.
tileGridXOffset - горизонтальное смещение сетки тайлов.
tileGridYOffset - вертикальное смещение сетки тайлов.
Исключения:
UnsupportedOperationException - если плагин не поддерживает разбиение на тайлы.
IllegalStateException - если режим разбиения на тайлы не MODE_EXPLICIT.
UnsupportedOperationException - если плагин не поддерживает смещения сетки, и смещения сетки не оба равны нулю.
IllegalArgumentException - если размер тайла не входит в один из допустимых диапазонов, возвращаемых getPreferredTileSizes.
IllegalArgumentException - если tileWidth или tileHeight меньше или равны 0.
См. также:
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 определяет, как выбираются параметры прогрессии, и должен быть либо 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()

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

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

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

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

setCompressionType

public void setCompressionType(String compressionType)

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

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

Параметры:
compressionType - одно из Strings, возвращаемых 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.

Возвращает:
текущий тип сжатия как 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() не является null, true возвращается для удобства.

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

setCompressionQuality

public void setCompressionQuality(float quality)

Устанавливает качество сжатия до значения между 0 и 1. По умолчанию поддерживается только одно значение качества сжатия; записыватели могут предоставить расширенные версии ImageWriteParam, которые предлагают больший контроль. Для схем сжатия с потерями качество сжатия должно управлять компромиссом между размером файла и качеством изображения (например, выбирая квантованные таблицы при записи изображений JPEG). Для схем без потерь качество сжатия может использоваться для управления компромиссом между размером файла и временем, необходимым для выполнения сжатия (например, оптимизируя фильтры строк и устанавливая уровень сжатия ZLIB при записи изображений PNG).

Значение качества сжатия 0,0 в наиболее общем случае интерпретируется как «важно высокое сжатие», а значение 1,0 — как «важно высокое качество изображения».

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

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

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

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)

Возвращает значение float, указывающее оценку количества битов выходных данных для каждого бита входных данных изображения при заданном уровне качества. Значение обычно находится в диапазоне от 0 до 1, где меньшие значения указывают на большее сжатие. Специальное значение -1.0F используется для обозначения того, что оценка недоступна.

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

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

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

getCompressionQualityDescriptions

public String[] getCompressionQualityDescriptions()

Возвращает массив String которые могут использоваться вместе с getCompressionQualityValues в качестве части пользовательского интерфейса для установки или отображения уровня качества сжатия. String с индексом i предоставляет описание диапазона уровней качества между getCompressionQualityValues[i] и getCompressionQualityValues[i + 1]. Обратите внимание, что длина массива, возвращаемого из getCompressionQualityValues, всегда на единицу больше, чем возвращаемая из getCompressionQualityDescriptions.

Например, строки «Хорошо», «Лучше» и «Лучше всего» можно связать с диапазонами [0, .33), [.33, .66) и [.66, 1.0]. В этом случае getCompressionQualityDescriptions вернет { "Good", "Better", "Best" }, а getCompressionQualityValues вернет { 0.0F, .33F, .66F, 1.0F }.

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

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

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

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

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

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

Spec-Zone.ru

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