Spec-Zone.ru › OpenJDK 21

Класс 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()
Возвращает массив 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
Значение, которое boolean если это true позволяет устанавливать параметры ширины и высоты плиток. По умолчанию значение равно 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
Атрибут, который указывает, может ли данный записыватель записывать изображения с использованием сжатия. По умолчанию значение равно 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
Переменная, содержащая имя текущего типа сжатия или null, если тип не задан.

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

compressionQuality

protected float compressionQuality
Переменная, содержащая текущую настройку качества сжатия. Начальное значение равно 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 - изображение будет соответствовать метаданным, переданным в объект write. 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)

Ширина тайла

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

Высота тайла

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

Смещение тайловой сетки по горизонтали

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

Смещение тайловой сетки по вертикали

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

Поддержка послойной записи

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

Установить режим послойной записи

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

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

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

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

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

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

Получить текущий режим послойной записи

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

Поддержка сжатия

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

Установить режим сжатия

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

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

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

Получить текущий режим сжатия

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

Типы доступного сжатия

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

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

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

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

Установить тип сжатия

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.

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:
a 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, включительно.

Получение описаний качества сжатия

public String[] getCompressionQualityDescriptions()
Возвращает массив Strings, которые могут использоваться вместе с 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. Если null возвращается из getCompressionQualityValues, этот метод также должен вернуть null.

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

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

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

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

Получение значений качества сжатия

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

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

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

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

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

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

Spec-Zone.ru

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