Spec-Zone.ru › OpenJDK 24

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

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 не является 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.

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.
IllegalArgumentException - если quality не находится между 0 и 1 включительно.
См. также:
  • getCompressionQuality()

getCompressionQuality

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

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

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

Возвращает:
текущую настройку качества сжатия.
Бросает:
UnsupportedOperationException - если запись не поддерживает сжатие.
IllegalStateException - если режим сжатия не MODE_EXPLICIT.
IllegalStateException - если множество допустимых типов сжатия не пусто и текущий тип сжатия равен 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, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/imageio/ImageWriteParam.html

Spec-Zone.ru

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