Класс 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 (например, прогрессивное кодирование необязательно, но прореживание должно поддерживаться).
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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 |
Вертикальное смещение сетки прореживания, применяемое до прореживания. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт пустой объект ImageWriteParam. |
|
| Создаёт объект ImageWriteParam, настроенный для использования заданного объекта Locale. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
canOffsetTiles() |
Возвращает true, если средство записи может выполнять разбиение на тайлы с ненулевыми смещениями сетки во время записи. |
boolean |
canWriteCompressed() |
Возвращает true, если это средство записи поддерживает сжатие. |
boolean |
canWriteProgressive() |
Возвращает true, если средство записи может записывать изображения в виде серии проходов с постепенно возрастающим качеством. |
boolean |
canWriteTiles() |
Возвращает true, если средство записи может выполнять разбиение на тайлы во время записи. |
float |
getBitRate |
Возвращает объект 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 |
Задаёт, следует ли выполнять сжатие и, если следует, как определять его параметры. |
void |
setCompressionQuality |
Задаёт качество сжатия значением от 0 до 1. |
void |
setCompressionType |
Задаёт тип сжатия одним из значений, указанных в getCompressionTypes. |
void |
setProgressiveMode |
Указывает, что средство записи должно записать изображение в прогрессивном режиме, при котором поток будет содержать серию сканирований с возрастающим качеством. |
void |
setTiling |
Указывает, что изображение следует разбить на тайлы в выходном потоке. |
void |
setTilingMode |
Определяет, будет ли изображение разбито на тайлы в выходном потоке и, если будет, как будут определяться параметры разбиения. |
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, который будет использоваться для задания параметров этого объекта IIOParam при вызове метода activateController, заменяя контроллер по умолчанию. |
void |
setDestinationOffset |
Задаёт смещение в целевом изображении, куда следует помещать декодированные пиксели при чтении или где будет записана область при записи. |
void |
setDestinationType |
Задаёт желаемый тип изображения для целевого изображения с помощью объекта ImageTypeSpecifier. |
void |
setSourceBands |
Задаёт индексы используемых полос источника. |
void |
setSourceRegion |
Задаёт область интереса источника. |
void |
setSourceSubsampling |
Задаёт прореживание с децимацией, применяемое при вводе-выводе. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
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 |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
MODE_DISABLED
public static final int MODE_DISABLED
setTilingMode, setProgressiveMode и setCompressionMode, чтобы отключить функцию для последующих операций записи. Иными словами, если установлен этот режим, поток не будет разбит на тайлы, будет записан в прогрессивном режиме или сжат, а соответствующие методы доступа будут выбрасывать IllegalStateException.- См. также:
MODE_DEFAULT
public static final int MODE_DEFAULT
setTilingMode, setProgressiveMode и setCompressionMode, чтобы включить эту функцию для последующих операций записи. Иными словами, если включен этот режим, поток будет разбит на тайлы, записан в прогрессивном режиме или сжат с использованием подходящего значения по умолчанию, выбранного внутренними средствами модуля записи; конкретный выбор зависит от подключаемого модуля. Соответствующие методы доступа будут выбрасывать IllegalStateException.- См. также:
MODE_EXPLICIT
public static final int MODE_EXPLICIT
setTilingMode или setCompressionMode, чтобы включить функцию для последующих операций записи. Иными словами, если установлен этот режим, поток будет разбит на тайлы или сжат в соответствии с дополнительными сведениями, переданными соответствующим методам set этого класса и доступными через соответствующие методы get. Обратите внимание, что этот режим не поддерживается для прогрессивного вывода.- См. также:
MODE_COPY_FROM_METADATA
public static final int MODE_COPY_FROM_METADATA
setTilingMode, setProgressiveMode или setCompressionMode, чтобы включить эту функцию для последующих операций записи. Иными словами, если включен этот режим, поток будет разбит на тайлы, записан в прогрессивном режиме или сжат на основе содержимого метаданных потока и/или изображения, переданных в операцию записи, а все соответствующие методы доступа будут выбрасывать IllegalStateException. Это режим по умолчанию для всех функций, благодаря чему чтение с последующей записью метаданных позволяет сохранить как можно больше информации.
- См. также:
canWriteTiles
protected boolean canWriteTiles
boolean, равное true, если этот ImageWriteParam позволяет задавать ширину и высоту тайлов. По умолчанию значение равно false. Подклассы должны задать это значение вручную. Подклассы, не поддерживающие запись тайлов, должны установить для этого значения false.
tilingMode
protected int tilingMode
MODE_*. Значение по умолчанию — MODE_COPY_FROM_METADATA. Подклассы, не поддерживающие запись тайлов, могут игнорировать это значение.
- См. также:
preferredTileSizes
protected Dimension[] preferredTileSizes
null, что означает отсутствие предпочтительных размеров. Если значение не равно null, длина массива должна быть четной и составлять не менее двух элементов. Подклассы, не поддерживающие запись тайлов, могут игнорировать это значение.
- См. также:
tilingSet
protected boolean tilingSet
boolean, равное true, если параметры разбиения на тайлы заданы. Подклассы, не поддерживающие запись тайлов, могут игнорировать это значение.
tileWidth
protected int tileWidth
Подклассы, не поддерживающие разбиение на тайлы, могут игнорировать это значение.
tileHeight
protected int tileHeight
0. Подклассы, не поддерживающие разбиение на тайлы, могут игнорировать это значение.
canOffsetTiles
protected boolean canOffsetTiles
boolean, равное true, если этот ImageWriteParam позволяет задавать параметры смещения сетки тайлов. По умолчанию значение равно false. Подклассы должны задать это значение вручную. Подклассы, не поддерживающие запись тайлов, а также поддерживающие запись, но не смещение тайлов, должны установить для этого значения false.
tileGridXOffset
protected int tileGridXOffset
0. Подклассы, не поддерживающие смещение тайлов, могут игнорировать это значение.
tileGridYOffset
protected int tileGridYOffset
0. Подклассы, не поддерживающие смещение тайлов, могут игнорировать это значение.
canWriteProgressive
protected boolean canWriteProgressive
boolean, равное true, если этот ImageWriteParam позволяет записывать изображения в виде последовательности проходов с возрастающим качеством. По умолчанию значение равно false. Подклассы должны задать это значение вручную. Подклассы, не поддерживающие прогрессивное кодирование, должны установить для этого значения false.
progressiveMode
protected int progressiveMode
MODE_*, кроме MODE_EXPLICIT. Значение по умолчанию — MODE_COPY_FROM_METADATA. Подклассы, не поддерживающие прогрессивное кодирование, могут игнорировать это значение.
- См. также:
canWriteCompressed
protected boolean canWriteCompressed
boolean, равное true, если этот модуль записи может записывать изображения с использованием сжатия. По умолчанию значение равно false. Подклассы должны задать это значение вручную. Подклассы, не поддерживающие сжатие, должны установить для этого значения false.
compressionMode
protected int compressionMode
MODE_*. Значение по умолчанию — MODE_COPY_FROM_METADATA. Подклассы, не поддерживающие сжатие, могут игнорировать это значение.
- См. также:
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
public boolean canOffsetTiles()
true, если модуль записи может разбивать изображение на тайлы с ненулевым смещением сетки во время записи. Если этот метод возвращает false, метод setTiling выбросит UnsupportedOperationException, если оба аргумента смещения сетки не равны нулю. Если canWriteTiles возвращает false, этот метод также вернет false.- Возвращает:
-
true, если модуль записи поддерживает ненулевое смещение тайлов. - См. также:
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не соответствует ни одному из перечисленных выше режимов. - См. также:
getTilingMode
public int getTilingMode()
UnsupportedOperationException.- Возвращает:
- текущий режим разбиения на тайлы.
- Выбрасывает:
-
UnsupportedOperationException— еслиcanWriteTilesвозвращаетfalse. - См. также:
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. - См. также:
unsetTiling
public void unsetTiling()
setTiling. Реализация по умолчанию присваивает переменным экземпляра tileWidth, tileHeight, tileGridXOffset и tileGridYOffset значение 0.
- Выбрасывает:
-
UnsupportedOperationException— если подключаемый модуль не поддерживает разбиение на тайлы. -
IllegalStateException— если режим разбиения на тайлы не равенMODE_EXPLICIT. - См. также:
getTileWidth
public int getTileWidth()
IllegalStateException.- Возвращает:
- ширину тайла, используемую при кодировании.
- Выбрасывает:
-
UnsupportedOperationException— если подключаемый модуль не поддерживает разбиение на тайлы. -
IllegalStateException— если режим разбиения на тайлы не равенMODE_EXPLICIT. -
IllegalStateException— если параметры разбиения на тайлы не заданы. - См. также:
getTileHeight
public int getTileHeight()
IllegalStateException.- Возвращает:
- высоту тайла, используемую при кодировании.
- Выбрасывает:
-
UnsupportedOperationException— если подключаемый модуль не поддерживает разбиение на тайлы. -
IllegalStateException— если режим разбиения на тайлы не равенMODE_EXPLICIT. -
IllegalStateException— если параметры разбиения на тайлы не заданы. - См. также:
getTileGridXOffset
public int getTileGridXOffset()
IllegalStateException.- Возвращает:
- смещение сетки тайлов по оси X, используемое при кодировании.
- Выбрасывает:
-
UnsupportedOperationException— если подключаемый модуль не поддерживает разбиение на тайлы. -
IllegalStateException— если режим разбиения на тайлы не равенMODE_EXPLICIT. -
IllegalStateException— если параметры разбиения на тайлы не заданы. - См. также:
getTileGridYOffset
public int getTileGridYOffset()
IllegalStateException.- Возвращает:
- смещение сетки тайлов по оси Y, используемое при кодировании.
- Выбрасывает:
-
UnsupportedOperationException— если подключаемый модуль не поддерживает разбиение на тайлы. -
IllegalStateException— если режим разбиения на тайлы не равенMODE_EXPLICIT. -
IllegalStateException— если параметры разбиения на тайлы не заданы. - См. также:
canWriteProgressive
public boolean canWriteProgressive()
true, если модуль записи может выводить изображения в виде последовательности проходов с постепенно повышающимся качеством.- Возвращает:
-
true, если модуль записи поддерживает прогрессивное кодирование. - См. также:
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
public int getProgressiveMode()
- Возвращает:
- текущий режим прогрессивного кодирования.
- Выбрасывает:
-
UnsupportedOperationException— если модуль записи не поддерживает прогрессивное кодирование. - См. также:
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
public int getCompressionMode()
- Возвращает:
- текущий режим сжатия.
- Вызывает исключения:
-
UnsupportedOperationException— если средство записи не поддерживает сжатие. - См. также:
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. - См. также:
getCompressionType
public String getCompressionType()
null, если он не задан. Тип возвращается как String из числа значений, возвращаемых методом getCompressionTypes. Если тип сжатия не задан, возвращается null. Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, она возвращает значение переменной экземпляра compressionType.
- Возвращает:
- текущий тип сжатия в виде
Stringилиnull, если тип не задан. - Вызывает исключения:
-
UnsupportedOperationException— если средство записи не поддерживает сжатие. -
IllegalStateException— если режим сжатия не равенMODE_EXPLICIT. - См. также:
unsetCompression
public void unsetCompression()
Реализация по умолчанию устанавливает переменную экземпляра compressionType в null, а переменную экземпляра compressionQuality — в 1.0F.
- Вызывает исключения:
-
UnsupportedOperationException— если модуль не поддерживает сжатие. -
IllegalStateException— если режим сжатия не равенMODE_EXPLICIT. - См. также:
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
public float getCompressionQuality()
Если существует несколько типов сжатия, но ни один не задан, вызывается исключение IllegalStateException.
Реализация по умолчанию проверяет, поддерживается ли сжатие и установлен ли режим сжатия MODE_EXPLICIT. Если да, и getCompressionTypes() равно null или getCompressionType() не равно null, возвращается значение переменной экземпляра compressionQuality.
- Возвращает:
- текущую настройку качества сжатия.
- Вызывает исключения:
-
UnsupportedOperationException— если средство записи не поддерживает сжатие. -
IllegalStateException— если режим сжатия не равенMODE_EXPLICIT. -
IllegalStateException— если набор допустимых типов сжатия не равенnull, а текущий тип сжатия равенnull. - См. также:
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
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. - См. также:
© 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.