Spec-Zone.ru › OpenJDK 27

Класс 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, если параметры разбиения на тайлы заданы.

Поля, объявленные в классе IIOParam

controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
Модификатор и тип Поле Описание
protected IIOParamController controller
Объект IIOParamController, который будет использоваться для задания параметров этого объекта IIOParam при вызове метода activateController.
protected IIOParamController defaultController
Объект IIOParamController по умолчанию, который будет использоваться для задания параметров этого объекта IIOParam при вызове метода activateController.
protected Point destinationOffset
Смещение в целевом изображении, куда следует поместить декодированный пиксель в левом верхнем углу.
protected ImageTypeSpecifier destinationType
Объект ImageTypeSpecifier, используемый для создания целевого изображения при чтении или для задания типа выходного цвета при записи.
protected int[] sourceBands
Массив объектов int, указывающих используемые полосы источника, или null.
protected Rectangle sourceRegion
Область источника; если она не задана, используется null.
protected int sourceXSubsampling
Прореживание с децимацией, применяемое в горизонтальном направлении.
protected int sourceYSubsampling
Прореживание с децимацией, применяемое в вертикальном направлении.
protected int subsamplingXOffset
Горизонтальное смещение сетки прореживания, применяемое до прореживания.
protected int 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.

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

activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
Модификатор и тип Метод Описание
boolean activateController()
Активирует установленный объект IIOParamController для этого объекта IIOParam и возвращает полученное значение.
IIOParamController getController()
Возвращает текущий установленный объект IIOParamController.
IIOParamController getDefaultController()
Возвращает объект IIOParamController по умолчанию, если он есть, независимо от текущего установленного контроллера.
Point getDestinationOffset()
Возвращает смещение в целевом изображении, куда следует поместить пиксели.
ImageTypeSpecifier getDestinationType()
Возвращает тип изображения, которое будет возвращено при чтении, если он был задан вызовом метода setDestination(ImageTypeSpecifier), в виде объекта ImageTypeSpecifier.
int[] getSourceBands()
Возвращает набор используемых полос источника.
Rectangle getSourceRegion()
Возвращает используемую область источника.
int getSourceXSubsampling()
Возвращает число столбцов источника, пропускаемых между пикселями.
int getSourceYSubsampling()
Возвращает число строк, пропускаемых между пикселями.
int getSubsamplingXOffset()
Возвращает горизонтальное смещение сетки прореживания.
int getSubsamplingYOffset()
Возвращает вертикальное смещение сетки прореживания.
boolean hasController()
Возвращает true, если для этого объекта IIOParam установлен контроллер.
void setController(IIOParamController controller)
Задаёт объект IIOParamController, который будет использоваться для задания параметров этого объекта IIOParam при вызове метода activateController, заменяя контроллер по умолчанию.
void setDestinationOffset(Point destinationOffset)
Задаёт смещение в целевом изображении, куда следует помещать декодированные пиксели при чтении или где будет записана область при записи.
void setDestinationType(ImageTypeSpecifier destinationType)
Задаёт желаемый тип изображения для целевого изображения с помощью объекта ImageTypeSpecifier.
void setSourceBands(int[] sourceBands)
Задаёт индексы используемых полос источника.
void setSourceRegion(Rectangle sourceRegion)
Задаёт область интереса источника.
void setSourceSubsampling(int sourceXSubsampling, int sourceYSubsampling, int subsamplingXOffset, int subsamplingYOffset)
Задаёт прореживание с децимацией, применяемое при вводе-выводе.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс среды выполнения этого объекта Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно вследствие вызова notify или interrupt.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

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, если этот 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
Значение boolean, равное true, если параметры разбиения на тайлы заданы.

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

tileWidth

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

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

tileHeight

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

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

canOffsetTiles

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

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

tileGridXOffset

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

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

tileGridYOffset

protected int tileGridYOffset
Величина вертикального смещения начала сетки тайлов относительно начала изображения, если разбиение на тайлы настроено, или 0 в противном случае. Начальное значение — 0.

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

canWriteProgressive

protected boolean canWriteProgressive
Значение boolean, равное 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, равное 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, задающих допустимые диапазоны размеров тайлов при их кодировании в выходной файл или поток. Возвращаемый массив является копией.

Данные возвращаются в виде набора пар: первый элемент пары содержит минимальные ширину и высоту (включительно), а второй — максимальные ширину и высоту (включительно). Каждая пара задает допустимый диапазон размеров. Чтобы задать фиксированный размер, укажите одинаковые ширину и высоту для обоих элементов. Чтобы задать произвольный диапазон, вместо фактического массива объектов Dimension используется значение null.

Если массив не задан в конструкторе, но разбиение на тайлы разрешено, этот метод возвращает 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()
Возвращает список доступных типов сжатия в виде массива 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(String)

unsetCompression

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

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

Вызывает исключения:
UnsupportedOperationException — если модуль не поддерживает сжатие.
IllegalStateException — если режим сжатия не равен MODE_EXPLICIT.
См. также:
  • setCompressionType(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()

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, где представлены более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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