Класс 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 | А |
protected boolean | canWriteCompressed | А |
protected boolean | canWriteProgressive | А |
protected boolean | canWriteTiles | А |
protected int | compressionMode | Режим, управляющий настройками сжатия, который должен быть установлен в одно из четырёх значений |
protected float | compressionQuality | А |
protected String | compressionType | А |
protected String[] | compressionTypes | Массив |
protected Locale | locale | А |
static int | MODE_COPY_FROM_METADATA | Постоянное значение, которое может быть передано в методы, такие как |
static int | MODE_DEFAULT | Постоянное значение, которое может быть передано в методы, такие как |
static int | MODE_DISABLED | Постоянное значение, которое может быть передано в методы, такие как |
static int | MODE_EXPLICIT | Постоянное значение, которое может быть передано в методы, такие как |
protected Dimension[] | preferredTileSizes | Массив пар предпочтительных диапазонов размеров тайла. |
protected int | progressiveMode | Режим, управляющий прогрессивным кодированием, который должен быть установлен в одно из четырёх значений |
protected int | tileGridXOffset | Величина, на которую начало сетки тайлов должно быть смещено по горизонтали от начала изображения, если мозаичность задана, или 0 в противном случае. |
protected int | tileGridYOffset | Величина, на которую начало сетки тайлов должно быть смещено по вертикали от начала изображения, если мозаичность задана, или 0 в противном случае. |
protected int | tileHeight | Высота каждого тайла, если мозаичность задана, или 0 в противном случае. |
protected int | tileWidth | Ширина каждого тайла, если мозаичность задана, или 0 в противном случае. |
protected int | tilingMode | Режим, управляющий настройками мозаичности, который должен быть установлен в одно из четырёх значений |
protected boolean | tilingSet | А |
Поля, объявленные в классе javax.imageio.IIOParam
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | ImageWriteParam() | Создаёт пустой |
ImageWriteParam(Locale locale) | Создаёт |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | canOffsetTiles() | Возвращает |
boolean | canWriteCompressed() | Возвращает |
boolean | canWriteProgressive() | Возвращает |
boolean | canWriteTiles() | Возвращает |
float | getBitRate(float quality) | Возвращает |
int | getCompressionMode() | Возвращает текущий режим сжатия, если сжатие поддерживается. |
float | getCompressionQuality() | Возвращает текущую настройку качества сжатия. |
String[] | getCompressionQualityDescriptions() | Возвращает массив |
float[] | getCompressionQualityValues() | Возвращает массив |
String | getCompressionType() | Возвращает текущий тип сжатия или |
String[] | getCompressionTypes() | Возвращает список доступных типов сжатия в виде массива или |
Locale | getLocale() | Возвращает текущую установку |
String | getLocalizedCompressionTypeName() | Возвращает локализованную версию имени текущего типа сжатия, используя |
Dimension[] | getPreferredTileSizes() | Возвращает массив |
int | getProgressiveMode() | Возвращает текущий режим записи потока в поэтапном режиме. |
int | getTileGridXOffset() | Возвращает горизонтальное смещение сетки плиток изображения, как оно будет записано в выходной поток. |
int | getTileGridYOffset() | Возвращает вертикальное смещение сетки плиток изображения, как оно будет записано в выходной поток. |
int | getTileHeight() | Возвращает высоту каждой плитки в изображении, как она будет записана в выходной поток. |
int | getTileWidth() | Возвращает ширину каждой плитки в изображении, как она будет записана в выходной поток. |
int | getTilingMode() | Возвращает текущий режим разбиения на плитки, если разбиение на плитки поддерживается. |
boolean | isCompressionLossless() | Возвращает |
void | setCompressionMode(int mode) | Указывает, должно ли выполняться сжатие, и если да, то как должны определяться параметры сжатия. |
void | setCompressionQuality(float quality) | Устанавливает качество сжатия на значение от |
void | setCompressionType(String compressionType) | Устанавливает тип сжатия на одно из значений, указанных в |
void | setProgressiveMode(int mode) | Указывает, что писатель должен записать изображение в поэтапном режиме, так что поток будет содержать серию сканирований с возрастающим качеством. |
void | setTiling(int tileWidth,
int tileHeight,
int tileGridXOffset,
int tileGridYOffset) | Указывает, что изображение должно быть разбито на плитки в выходном потоке. |
void | setTilingMode(int mode) | Определяет, будет ли изображение разбито на плитки в выходном потоке, и если да, то как будут определены параметры разбиения на плитки. |
void | unsetCompression() | Удаляет все предыдущие типы и настройки качества сжатия. |
void | unsetTiling() | Удаляет любые предыдущие параметры сетки плиток, заданные вызовами |
Методы, объявленные в классе javax.imageio.IIOParam
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
MODE_DISABLED
public static final int MODE_DISABLED
Постоянное значение, которое может быть передано в методы, такие как setTilingMode, setProgressiveMode, и setCompressionMode, чтобы отключить функцию для будущих записей. То есть, когда этот режим установлен, поток не будет черепичным, поэтапным или сжатым, и соответствующие методы доступа будут выбрасывать IllegalStateException.
- См. также:
-
MODE_EXPLICIT,MODE_COPY_FROM_METADATA,MODE_DEFAULT,setProgressiveMode(int),getProgressiveMode(),setTilingMode(int),getTilingMode(),setCompressionMode(int),getCompressionMode(), Значения константных полей
MODE_DEFAULT
public static final int MODE_DEFAULT
Постоянное значение, которое может быть передано в методы, такие как setTilingMode, setProgressiveMode, и setCompressionMode, чтобы включить эту функцию для будущих записей. То есть, когда этот режим включен, поток будет черепичным, поэтапным или сжатым в соответствии с разумным значением по умолчанию, выбранным внутренне создателем, в зависимости от плагина, и соответствующие методы доступа будут выбрасывать IllegalStateException.
- См. также:
-
MODE_DISABLED,MODE_EXPLICIT,MODE_COPY_FROM_METADATA,setProgressiveMode(int),getProgressiveMode(),setTilingMode(int),getTilingMode(),setCompressionMode(int),getCompressionMode(), Значения константных полей
MODE_EXPLICIT
public static final int MODE_EXPLICIT
Постоянное значение, которое может быть передано в методы, такие как setTilingMode или setCompressionMode, чтобы включить функцию для будущих записей. То есть, когда этот режим установлен, поток будет черепичным или сжатым в соответствии с дополнительной информацией, предоставленной соответствующим методам set в этом классе и извлекаемой из соответствующих методов get. Обратите внимание, что этот режим не поддерживается для поэтапного вывода.
- См. также:
-
MODE_DISABLED,MODE_COPY_FROM_METADATA,MODE_DEFAULT,setProgressiveMode(int),getProgressiveMode(),setTilingMode(int),getTilingMode(),setCompressionMode(int),getCompressionMode(), Значения константных полей
MODE_COPY_FROM_METADATA
public static final int MODE_COPY_FROM_METADATA
Постоянное значение, которое может быть передано в методы, такие как setTilingMode, setProgressiveMode, или setCompressionMode, чтобы включить эту функцию для будущих записей. То есть, когда этот режим включен, поток будет черепичным, поэтапным или сжатым на основе содержимого потока и/или метаданных изображения, переданных в операцию записи, а любые соответствующие методы доступа будут выбрасывать IllegalStateException.
Это режим по умолчанию для всех функций, так что чтение, включая метаданные, за которым следует запись, включая метаданные, сохранит как можно больше информации.
- См. также:
-
MODE_DISABLED,MODE_EXPLICIT,MODE_DEFAULT,setProgressiveMode(int),getProgressiveMode(),setTilingMode(int),getTilingMode(),setCompressionMode(int),getCompressionMode(), Значения константных полей
canWriteTiles
protected boolean canWriteTiles
Значение, которое равно true, если этот ImageWriteParam позволяет задавать параметры ширины и высоты черепицы. По умолчанию значение равно false. Подклассы должны устанавливать значение вручную.
Подклассы, которые не поддерживают запись черепиц, должны убедиться, что это значение установлено в false.
tilingMode
protected int tilingMode
Режим, контролирующий настройки черепицы, который должен быть установлен на одно из четырёх MODE_* значений. По умолчанию значение равно MODE_COPY_FROM_METADATA.
Подклассы, которые не поддерживают запись черепиц, могут игнорировать это значение.
- См. также:
-
MODE_DISABLED,MODE_EXPLICIT,MODE_COPY_FROM_METADATA,MODE_DEFAULT,setTilingMode(int),getTilingMode()
preferredTileSizes
protected Dimension[] preferredTileSizes
Массив пар диапазонов предпочтительных размеров черепицы. Значение по умолчанию — null, что указывает на отсутствие предпочтительных размеров. Если значение не null, оно должно иметь чётную длину не менее двух.
Подклассы, которые не поддерживают запись черепиц, могут игнорировать это значение.
- См. также:
getPreferredTileSizes()
tilingSet
protected boolean tilingSet
Значение, которое равно true, если параметры черепицы заданы.
Подклассы, которые не поддерживают запись черепиц, могут игнорировать это значение.
tileWidth
protected int tileWidth
Ширина каждой черепицы, если черепица задана, или 0 в противном случае.
Подклассы, которые не поддерживают черепицу, могут игнорировать это значение.
tileHeight
protected int tileHeight
Высота каждой черепицы, если черепица задана, или 0 в противном случае. Начальное значение — 0.
Подклассы, которые не поддерживают черепицу, могут игнорировать это значение.
canOffsetTiles
protected boolean canOffsetTiles
Значение, которое равно true, если этот ImageWriteParam позволяет задавать параметры смещения сетки черепицы. По умолчанию значение равно false. Подклассы должны устанавливать значение вручную.
Подклассы, которые не поддерживают запись черепиц или которые поддерживают запись, но не смещение черепиц, должны убедиться, что это значение установлено в false.
tileGridXOffset
protected int tileGridXOffset
Величина, на которую начало сетки черепиц должно смещаться горизонтально от начала изображения, если черепица задана, или 0 в противном случае. Начальное значение — 0.
Подклассы, которые не поддерживают смещение черепиц, могут игнорировать это значение.
tileGridYOffset
protected int tileGridYOffset
Величина, на которую начало сетки черепиц должно смещаться вертикально от начала изображения, если черепица задана, или 0 в противном случае. Начальное значение — 0.
Подклассы, которые не поддерживают смещение черепиц, могут игнорировать это значение.
canWriteProgressive
protected boolean canWriteProgressive
Значение, которое равно true, если этот ImageWriteParam позволяет записывать изображения как поэтапную последовательность проходов с возрастающим качеством. По умолчанию значение равно false. Подклассы должны устанавливать значение вручную.
Подклассы, которые не поддерживают поэтапное кодирование, должны убедиться, что это значение установлено в false.
progressiveMode
protected int progressiveMode
Режим, контролирующий поэтапное кодирование, который должен быть установлен на одно из четырёх MODE_* значений, кроме MODE_EXPLICIT. По умолчанию значение равно MODE_COPY_FROM_METADATA.
Подклассы, которые не поддерживают поэтапное кодирование, могут игнорировать это значение.
- См. также:
-
MODE_DISABLED,MODE_EXPLICIT,MODE_COPY_FROM_METADATA,MODE_DEFAULT,setProgressiveMode(int),getProgressiveMode()
canWriteCompressed
protected boolean canWriteCompressed
Значение, которое равно true, если этот создатель может записывать изображения с использованием сжатия. По умолчанию значение равно false. Подклассы должны устанавливать значение вручную.
Подклассы, которые не поддерживают сжатие, должны убедиться, что это значение установлено в false.
compressionMode
protected int compressionMode
Режим, контролирующий настройки сжатия, который должен быть установлен на одно из четырёх MODE_* значений. По умолчанию значение равно MODE_COPY_FROM_METADATA.
Подклассы, которые не поддерживают сжатие, могут игнорировать это значение.
- См. также:
-
MODE_DISABLED,MODE_EXPLICIT,MODE_COPY_FROM_METADATA,MODE_DEFAULT,setCompressionMode(int),getCompressionMode()
compressionTypes
protected String[] compressionTypes
Массив String содержащих имена доступных типов сжатия. Подклассы должны устанавливать значение вручную.
Подклассы, которые не поддерживают сжатие, могут игнорировать это значение.
compressionType
protected String compressionType
A String содержащий имя текущего типа сжатия или null если не задано.
Подклассы, не поддерживающие сжатие, могут игнорировать это значение.
compressionQuality
protected float compressionQuality
A float содержащий текущую настройку качества сжатия. Начальное значение — 1.0F.
Подклассы, не поддерживающие сжатие, могут игнорировать это значение.
locale
protected Locale locale
A 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()
Возвращает массив Dimensions, указывающий допустимые диапазоны размеров плиток, как они будут закодированы в выходном файле или потоке. Возвращаемый массив является копией.
Информация возвращается в виде набора пар; первый элемент пары содержит минимальную ширину и высоту (включительно), а второй элемент — максимальную ширину и высоту (включительно). Вместе каждая пара определяет допустимый диапазон размеров. Чтобы указать фиксированный размер, используйте одинаковую ширину и высоту для обоих элементов. Чтобы указать произвольный диапазон, используется значение null вместо фактического массива Dimensions.
Если массив не задан в конструкторе, но разбиение на плитки разрешено, то этот метод возвращает null.
- Возвращает:
- массив
Dimensions с чётной длиной не менее двух, или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_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не пустое, но не является одним из значений, возвращаемых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() не пустое, 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 не пустое, она устанавливает compressionQuality переменную-член.
- Параметры:
-
quality- значение отfloatдо0, указывающее желаемый уровень качества. - Исключения:
-
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)
Возвращает значение, представляющее оценку количества битов выходных данных на бит входных данных изображения при данном уровне качества. Значение обычно лежит между 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()
Возвращает массив строк, которые могут быть использованы вместе с getCompressionQualityValues в пользовательском интерфейсе для установки или отображения уровня качества сжатия. Элемент массива с индексом i содержит описание диапазона уровней качества между getCompressionQualityValues[i] и getCompressionQualityValues[i + 1]. Обратите внимание, что длина возвращаемого массива из getCompressionQualityValues всегда на единицу больше, чем возвращаемая из getCompressionQualityDescriptions.
Например, строки "Хорошо", "Лучше" и "Лучше всего" могут быть связаны с диапазонами [0, .33), [.33, .66) и [.66, 1.0]. В этом случае, getCompressionQualityDescriptions вернёт { "Good", "Better", "Best" }, а getCompressionQualityValues вернёт { 0.0F, .33F, .66F, 1.0F }.
Если описания недоступны, возвращается null. Если null возвращается из getCompressionQualityValues, этот метод также должен вернуть null.
Описания должны быть локализованы для Locale, возвращаемого getLocale, если он не null.
Если существует несколько типов сжатия, но ни один не задан, выбрасывается IllegalStateException.
Реализация по умолчанию проверяет, поддерживается ли сжатие и является ли режим сжатия MODE_EXPLICIT. Если да, то если getCompressionTypes() равно null или getCompressionType() не null, возвращает null.
- Возвращает:
- массив строк, содержащий локализованные описания уровней качества сжатия.
- Исключения:
-
UnsupportedOperationException- если записыватель не поддерживает сжатие. -
IllegalStateException- если режим сжатия неMODE_EXPLICIT. -
IllegalStateException- если набор допустимых типов сжатия неnull, а текущий тип сжатияnull. - См. также:
getCompressionQualityValues()
getCompressionQualityValues
public float[] getCompressionQualityValues()
Возвращает массив значений, которые могут быть использованы вместе с getCompressionQualityDescriptions в пользовательском интерфейсе для установки или отображения уровня качества сжатия. Дополнительная информация в getCompressionQualityDescriptions.
Если описания недоступны, возвращается null. Если null возвращается из getCompressionQualityDescriptions, этот метод также должен вернуть null.
Если существует несколько типов сжатия, но ни один не задан, выбрасывается IllegalStateException.
Реализация по умолчанию проверяет, поддерживается ли сжатие и является ли режим сжатия MODE_EXPLICIT. Если да, то если getCompressionTypes() равно null или getCompressionType() не null, возвращает null.
- Возвращает:
- массив значений, указывающий границы между уровнями качества сжатия, как описано в строках из
StringизgetCompressionQualityDescriptions. - Исключения:
-
UnsupportedOperationException- если записыватель не поддерживает сжатие. -
IllegalStateException- если режим сжатия неMODE_EXPLICIT. -
IllegalStateException- если набор допустимых типов сжатия неnull, а текущий тип сжатияnull. - См. также:
getCompressionQualityDescriptions()
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/ImageWriteParam.html