Класс 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, 2023, 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/21/docs/api/java.desktop/javax/imageio/plugins/jpeg/JPEGImageWriteParam.html