Класс JPEGImageWriteParam
public class JPEGImageWriteParam extends ImageWriteParam
getDefaultImageWriteParam встроенного модуля ImageWriter JPEG. Основное назначение этих дополнений — дать возможность задавать таблицы для кодирования сокращённых потоков. Встроенный модуль записи JPEG также принимает обычный объект ImageWriteParam, и в этом случае модуль записи создаёт необходимые таблицы самостоятельно.
В обоих случаях настройка качества в объекте ImageWriteParam имеет то же значение, что и в базовой библиотеке: 1.00 означает таблицу квантования, состоящую только из единиц, 0.75 — «стандартную» визуально неразличимую таблицу квантования, а 0.00 — таблицу квантования, состоящую только из значений 255.
Хотя таблицы для сокращённых потоков часто задаются путём предварительной записи сокращённого потока, содержащего только таблицы, в некоторых приложениях таблицы определены заранее. Этот класс позволяет задавать таблицы непосредственно из клиентского кода.
Обычно таблицы задаются в объектах IIOMetadata, передаваемых модулю записи, и любые таблицы, включённые в эти объекты, записываются в поток. Если в метаданных таблицы не заданы, записывается сокращённый поток. Если таблицы не включены в метаданные и не заданы в объекте JPEGImageWriteParam, сокращённый поток кодируется с использованием «стандартных» визуально неразличимых таблиц. Этот класс необходим для задания таблиц, когда требуется записать сокращённый поток, не записывая предварительно таблицы в поток. Чтобы использовать этот класс, объект метаданных, передаваемый модулю записи, не должен содержать таблиц, а метаданные потока не должны предоставляться. Дополнительные сведения о таблицах по умолчанию см. в документации JPEGQTable и JPEGHuffmanTable.
Объект JPEGImageWriteParam по умолчанию, возвращаемый методом getDefaultWriteParam модуля записи, не содержит таблиц. Таблицы по умолчанию включены в объекты IIOMetadata по умолчанию, возвращаемые модулем записи.
Если метаданные содержат таблицы, таблицы, заданные в объекте JPEGImageWriteParam, игнорируются. Кроме того, после записи набора таблиц переопределить их для последующих операций записи — в тот же или другой поток — могут только таблицы из метаданных. Чтобы задать новые таблицы с помощью этого класса, необходимо вызвать метод reset модуля записи.
Дополнительные сведения о работе встроенных модулей JPEG см. в спецификации формата метаданных JPEG и примечаниях по использованию.
Краткое описание полей
Поля, объявленные в классе ImageWriteParam
canOffsetTiles, canWriteCompressed, canWriteProgressive, canWriteTiles, compressionMode, compressionQuality, compressionType, compressionTypes, locale, MODE_COPY_FROM_METADATA, MODE_DEFAULT, MODE_DISABLED, MODE_EXPLICIT, preferredTileSizes, progressiveMode, tileGridXOffset, tileGridYOffset, tileHeight, tileWidth, tilingMode, tilingSet | Модификатор и тип | Поле | Описание |
|---|---|---|
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 |
Вертикальное смещение, применяемое к сетке субдискретизации перед субдискретизацией. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
JPEGImageWriteParam |
Создаёт объект JPEGImageWriteParam. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
areTablesSet() |
Возвращает true, если таблицы заданы в данный момент. |
JPEGHuffmanTable[] |
getACHuffmanTables() |
Возвращает копию массива таблиц Хаффмана AC, заданных при последнем вызове setEncodeTables, или null, если таблицы в данный момент не заданы. |
JPEGHuffmanTable[] |
getDCHuffmanTables() |
Возвращает копию массива таблиц Хаффмана DC, заданных при последнем вызове setEncodeTables, или null, если таблицы в данный момент не заданы. |
boolean |
getOptimizeHuffmanTables() |
Возвращает значение, переданное при последнем вызове setOptimizeHuffmanTables, или false, если вызов setOptimizeHuffmanTables ещё не выполнялся. |
JPEGQTable[] |
getQTables() |
Возвращает копию массива таблиц квантования, заданных при последнем вызове setEncodeTables, или null, если таблицы в данный момент не заданы. |
boolean |
isCompressionLossless() |
Возвращает false, поскольку модуль JPEG поддерживает только сжатие с потерями. |
void |
setEncodeTables |
Задаёт таблицы квантования и Хаффмана для кодирования сокращённых потоков. |
void |
setOptimizeHuffmanTables |
Указывает модулю записи генерировать оптимизированные таблицы Хаффмана для изображения в процессе записи. |
void |
unsetCompression() |
Удаляет предыдущую настройку качества сжатия, если она была задана. |
void |
unsetEncodeTables() |
Удаляет все заданные в данный момент таблицы квантования и Хаффмана. |
Методы, объявленные в классе ImageWriteParam
canOffsetTiles, canWriteCompressed, canWriteProgressive, canWriteTiles, getBitRate, getCompressionMode, getCompressionQuality, getCompressionQualityDescriptions, getCompressionQualityValues, getCompressionType, getCompressionTypes, getLocale, getLocalizedCompressionTypeName, getPreferredTileSizes, getProgressiveMode, getTileGridXOffset, getTileGridYOffset, getTileHeight, getTileWidth, getTilingMode, setCompressionMode, setCompressionQuality, setCompressionType, setProgressiveMode, setTiling, setTilingMode, unsetTiling | Модификатор и тип | Метод | Описание |
|---|---|---|
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() |
Возвращает текущий режим мозаичного разбиения, если оно поддерживается. |
void |
setCompressionMode |
Задаёт, следует ли выполнять сжатие и, если да, как определять параметры сжатия. |
void |
setCompressionQuality |
Задаёт качество сжатия значением от 0 до 1. |
void |
setCompressionType |
Задаёт тип сжатия одним из значений, указанных в getCompressionTypes. |
void |
setProgressiveMode |
Указывает, что модуль записи должен записать изображение в прогрессивном режиме, чтобы поток содержал последовательность сканирований с возрастающим качеством. |
void |
setTiling |
Указывает, что изображение следует разбить на плитки в выходном потоке. |
void |
setTilingMode |
Определяет, будет ли изображение разбито на плитки в выходном потоке и, если да, как будут определяться параметры разбиения. |
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() |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
JPEGImageWriteParam
public JPEGImageWriteParam(Locale locale)
JPEGImageWriteParam. Разбиение на плитки не поддерживается. Прогрессивное кодирование поддерживается. По умолчанию прогрессивный режим — MODE_DISABLED. Поддерживается один тип сжатия с именем "JPEG". Качество сжатия по умолчанию — 0.75.- Параметры:
-
locale—Locale, используемый суперклассом для локализации названий типов сжатия и описаний качества, илиnull.
Подробное описание методов
unsetCompression
public void unsetCompression()
Реализация по умолчанию сбрасывает качество сжатия до 0.75F.
- Переопределяет:
-
unsetCompressionв классеImageWriteParam - Выбрасывает:
-
IllegalStateException— если режим сжатия не равенMODE_EXPLICIT. - См. также:
isCompressionLossless
public boolean isCompressionLossless()
false, поскольку подключаемый модуль JPEG поддерживает только сжатие с потерями.- Переопределяет:
-
isCompressionLosslessв классеImageWriteParam - Возвращает:
-
false. - Выбрасывает:
-
IllegalStateException— если режим сжатия не равенMODE_EXPLICIT.
areTablesSet
public boolean areTablesSet()
true, если таблицы заданы в данный момент.- Возвращает:
-
true, если таблицы заданы.
setEncodeTables
public void setEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
null. Два массива таблиц Хаффмана должны содержать одинаковое количество элементов. Предполагается, что спецификаторы таблиц в заголовках кадра и сканирования в метаданных соответствуют индексам в этих массивах. Этот метод копирует массивы аргументов.- Параметры:
-
qTables— массив объектов таблиц квантования. -
DCHuffmanTables— массив объектов таблиц Хаффмана. -
ACHuffmanTables— массив объектов таблиц Хаффмана. - Выбрасывает:
-
IllegalArgumentException— если какой-либо аргумент равенnullили содержит более 4 элементов, либо если количества таблиц DC и AC различаются. - См. также:
unsetEncodeTables
public void unsetEncodeTables()
- См. также:
getQTables
public JPEGQTable[] getQTables()
setEncodeTables, или null, если таблицы в данный момент не заданы.- Возвращает:
- массив объектов
JPEGQTableилиnull. - См. также:
getDCHuffmanTables
public JPEGHuffmanTable[] getDCHuffmanTables()
setEncodeTables, или null, если таблицы в данный момент не заданы.- Возвращает:
- массив объектов
JPEGHuffmanTableилиnull. - См. также:
getACHuffmanTables
public JPEGHuffmanTable[] getACHuffmanTables()
setEncodeTables, или null, если таблицы в данный момент не заданы.- Возвращает:
- массив объектов
JPEGHuffmanTableилиnull. - См. также:
setOptimizeHuffmanTables
public void setOptimizeHuffmanTables(boolean optimize)
false. Если этот флаг установлен в true, он переопределяет любые таблицы, указанные в метаданных. Обратите внимание: это означает, что любое изображение, записанное с этим флагом, установленным в true, всегда будет содержать таблицы Хаффмана.- Параметры:
-
optimize— логическое значение, указывающее, следует ли создавать оптимизированные таблицы Хаффмана при записи. - См. также:
getOptimizeHuffmanTables
public boolean getOptimizeHuffmanTables()
setOptimizeHuffmanTables, или false, если setOptimizeHuffmanTables ни разу не вызывался.- Возвращает:
-
true, если средство записи будет создавать оптимизированные таблицы Хаффмана. - См. также:
© 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.