Spec-Zone.ru › OpenJDK 25

Класс JPEGImageWriteParam

java.lang.Object
javax.imageio.IIOParam
javax.imageio.ImageWriteParam
javax.imageio.plugins.jpeg.JPEGImageWriteParam
public class JPEGImageWriteParam extends ImageWriteParam
Этот класс позволяет задавать таблицы квантования и таблицы Хаффмана при использовании встроенного модуля записи JPEG, а также запрашивать вычисление оптимизированных таблиц Хаффмана для изображения. Экземпляр этого класса будет возвращен методами 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(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()
Удаляет все заданные в данный момент таблицы квантования и таблицы Хаффмана.

Методы, объявленные в классе 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

Методы, объявленные в классе 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(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(JPEGQTable[], JPEGHuffmanTable[], JPEGHuffmanTable[])

getQTables

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

getDCHuffmanTables

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

getACHuffmanTables

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

setOptimizeHuffmanTables

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

getOptimizeHuffmanTables

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков с концептуальными обзорами, определениями терминов, обходными решениями и рабочими примерами кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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