Spec-Zone.ru › OpenJDK 21

Класс JPEGImageWriteParam

java.lang.Object
javax.imageio.IIOParam
javax.imageio.ImageWriteParam
javax.imageio.plugins.jpeg.JPEGImageWriteParam
public class JPEGImageWriteParam extends ImageWriteParam
Этот класс добавляет возможность задавать квантование и таблицы Хаффмана JPEG при использовании встроенного плагина JPEG-писателя и запрашивать вычисление оптимизированных таблиц Хаффмана для изображения. Экземпляр этого класса будет возвращен методами 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(Locale locale)
Создает 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(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
Устанавливает таблицы квантования и Хаффмана для использования при кодировании сокращенных потоков.
void setOptimizeHuffmanTables(boolean optimize)
Указывает писателю сгенерировать оптимизированные таблицы Хаффмана для изображения в процессе записи.
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

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, 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.
См. также:
  • ImageWriteParam.setCompressionType(java.lang.String)
  • ImageWriteParam.setCompressionQuality(float)

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)
Устанавливает таблицы квантования и Хаффмана для использования при кодировании сокращённых потоков. Максимальное количество таблиц каждого типа составляет 4. Эти таблицы игнорируются, если таблицы указаны в метаданных. Все аргументы должны быть не-null. Два массива таблиц Хаффмана должны иметь одинаковое количество элементов. Спецификаторы таблиц в заголовках фрейма и сканирования в метаданных предполагаются эквивалентными индексам в этих массивах. Аргументные массивы копируются этим методом.
Параметры:
qTables - Массив объектов таблиц квантования.
DCHuffmanTables - Массив объектов таблиц Хаффмана.
ACHuffmanTables - Массив объектов таблиц Хаффмана.
Исключения:
IllegalArgumentException - если любой из аргументов null или имеет более 4 элементов, или если количество таблиц DC и AC отличаются.
См. также:
  • unsetEncodeTables()

unsetEncodeTables

public void unsetEncodeTables()
Удаляет все установленные в настоящее время таблицы квантования и Хаффмана.
См. также:
  • setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

getQTables

public JPEGQTable[] getQTables()
Возвращает копию массива таблиц квантования, установленных при последнем вызове setEncodeTables, или null если таблицы не установлены.
Возвращает:
массив объектов JPEGQTable, или null.
См. также:
  • setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

getDCHuffmanTables

public JPEGHuffmanTable[] getDCHuffmanTables()
Возвращает копию массива таблиц DC Хаффмана, установленных при последнем вызове setEncodeTables, или null если таблицы не установлены.
Возвращает:
массив объектов JPEGHuffmanTable, или null.
См. также:
  • setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

getACHuffmanTables

public JPEGHuffmanTable[] getACHuffmanTables()
Возвращает копию массива таблиц AC Хаффмана, установленных при последнем вызове setEncodeTables, или null если таблицы не установлены.
Возвращает:
массив объектов JPEGHuffmanTable, или null.
См. также:
  • setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

setOptimizeHuffmanTables

public void setOptimizeHuffmanTables(boolean optimize)
Указывает, что записывателю нужно сгенерировать оптимизированные таблицы Хаффмана для изображения в процессе записи. По умолчанию false. Если этот флаг установлен в true, он переопределяет любые таблицы, указанные в метаданных. Обратите внимание, что это означает, что любое записанное изображение с этим флагом, установленным в true, всегда будет содержать таблицы Хаффмана.
Параметры:
optimize - Логическое значение, указывающее, нужно ли генерировать оптимизированные таблицы Хаффмана при записи.
См. также:
  • getOptimizeHuffmanTables()

getOptimizeHuffmanTables

public boolean getOptimizeHuffmanTables()
Возвращает значение, переданное в последний вызов setOptimizeHuffmanTables, или false если setOptimizeHuffmanTables никогда не вызывался.
Возвращает:
true если записыватель сгенерирует оптимизированные таблицы Хаффмана.
См. также:
  • setOptimizeHuffmanTables(boolean)

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API