Класс JPEGImageWriteParam
public class JPEGImageWriteParam extends ImageWriteParam
getDefaultImageWriteParam встроенного плагина JPEG ImageWriter. Основная цель этих дополнений — позволить указывать таблицы, которые будут использоваться при кодировании сокращенных потоков. Встроенный JPEG-писатель также примет обычный ImageWriteParam, в этом случае писатель построит необходимые таблицы внутренне.
В любом случае, настройка качества в ImageWriteParam имеет тот же смысл, что и в базовой библиотеке: 1.00 означает квантование таблицы со значениями 1, 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, 2021, 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/17/docs/api/java.desktop/javax/imageio/plugins/jpeg/JPEGImageWriteParam.html