Класс JPEGImageWriteParam
public class JPEGImageWriteParam extends ImageWriteParam
getDefaultImageWriteParam встроенного плагина JPEG ImageWriter. Основная цель этих добавлений — позволить указать таблицы для использования при кодировании сокращенных потоков. Встроенный плагин JPEG также примет обычный ImageWriteParam, в этом случае плагин построит необходимые таблицы внутренне.
В любом случае, настройка качества в ImageWriteParam имеет тот же смысл, что и для базовой библиотеки: 1.00 означает квантовую таблицу со всеми единицами, 0.75 означает "стандартную", визуально без потерь квантовую таблицу, а 0.00 означает квантовую таблицу со всеми 255.
Хотя таблицы для сокращенных потоков часто задаются путём записи сокращенного потока, содержащего только таблицы, в некоторых приложениях таблицы заданы заранее. Этот класс позволяет задавать таблицы напрямую из кода клиента.
Обычно таблицы задаются в объектах IIOMetadata, передаваемых в плагин записи, и все таблицы, включенные в эти объекты, записываются в поток. Если таблицы не заданы в метаданных, то записывается сокращенный поток. Если таблицы не включены в метаданные и не заданы в JPEGImageWriteParam, то сокращенный поток кодируется с использованием "стандартных" визуально без потерь таблиц. Этот класс необходим для задания таблиц, когда сокращенный поток должен быть записан без предварительной записи каких-либо таблиц в поток. Для использования этого класса объект метаданных, передаваемый в плагин записи, не должен содержать таблицы, и не должны быть предоставлены метаданные потока. См. JPEGQTable и JPEGHuffmanTable для получения дополнительной информации о стандартных таблицах.
По умолчанию JPEGImageWriteParam, возвращаемый методом getDefaultWriteParam плагина записи, не содержит таблиц. Стандартные таблицы включены в стандартные объекты IIOMetadata, возвращаемые плагином записи.
Если метаданные содержат таблицы, таблицы, указанные в JPEGImageWriteParam игнорируются. Кроме того, после записи набора таблиц, только таблицы в метаданных могут переопределить их для последующих записей, будь то в тот же поток или в другой. Для указания новых таблиц с помощью этого класса необходимо вызвать метод reset плагина записи.
Дополнительную информацию об работе встроенных плагинов JPEG см. в спецификации формата метаданных JPEG и примечаниях к использованию.
Краткое описание полей
Поля, объявленные в классе javax.imageio.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
Поля, объявленные в классе javax.imageio.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() |
Удаляет любые установленные таблицы квантования и Хаффмана. |
Методы, объявленные в классе javax.imageio.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
Методы, объявленные в классе javax.imageio.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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/imageio/plugins/jpeg/JPEGImageWriteParam.html