Класс 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
Поля, объявленные в классе IIOParam
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, 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
Методы, объявленные в классе IIOParam
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
Подробное описание конструкторов
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/imageio/plugins/jpeg/JPEGImageWriteParam.html