Класс JPEGImageReadParam

public class JPEGImageReadParam
extends ImageReadParam

Этот класс добавляет возможность задавать квантование JPEG и таблицы Хаффмана при использовании встроенного плагина-читателя JPEG. Экземпляр этого класса будет возвращаться из методов getDefaultImageReadParam встроенного плагина JPEG ImageReader.

Единственная цель этих добавлений — позволить указывать таблицы для использования при декодировании сокращённых потоков. Встроенный читатель JPEG также примет обычный ImageReadParam, что достаточно для декодирования несокращённых потоков.

Хотя таблицы для сокращённых потоков часто получают, сначала прочитав другой сокращённый поток, содержащий только таблицы, в некоторых приложениях таблицы задаются заранее. Этот класс позволяет напрямую задавать таблицы из кода клиента. Если таблицы не заданы ни в потоке, ни в JPEGImageReadParam, то предполагается использование "стандартных" визуально без потерь таблиц. Дополнительную информацию о стандартных таблицах см. в JPEGQTable и JPEGHuffmanTable.

По умолчанию JPEGImageReadParam, возвращаемый методом getDefaultReadParam встроенного читателя JPEG, не содержит таблиц. Стандартные таблицы можно получить из классов таблиц JPEGQTable и JPEGHuffmanTable.

Если поток содержит таблицы, таблицы, заданные в JPEGImageReadParam, игнорируются. Кроме того, если первый образ в потоке содержит таблицы, а последующие — нет, то таблицы, заданные в первом изображении, используются для всех сокращённых изображений. После того, как таблицы были прочитаны из потока, их можно переопределить только таблицами, которые впоследствии считываются из того же потока. Для задания новых таблиц необходимо вызвать метод setInput читателя для изменения потока.

Обратите внимание, что этот класс не предоставляет способ получения таблиц, найденных в потоке. Эти таблицы можно извлечь из потока, обратившись к объекту IIOMetadata, возвращаемому читателем.

Более подробную информацию об работе встроенных плагинов JPEG см. в спецификации формата метаданных JPEG и примечаниях к использованию.

Поля

Поля, объявленные в классе javax.imageio.ImageReadParam

canSetSourceRenderSize, destination, destinationBands, minProgressivePass, numProgressivePasses, sourceRenderSize

Поля, объявленные в классе javax.imageio.IIOParam

controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset

Краткое описание конструкторов

Конструктор Описание
JPEGImageReadParam()

Создаёт JPEGImageReadParam.

Краткое описание методов

Модификатор и тип Метод Описание
boolean areTablesSet()

Возвращает true в случае, если таблицы в настоящее время установлены.

JPEGHuffmanTable[] getACHuffmanTables()

Возвращает копию массива таблиц Хаффмана AC, установленных во время последнего вызова setDecodeTables, или null в случае отсутствия установленных таблиц.

JPEGHuffmanTable[] getDCHuffmanTables()

Возвращает копию массива таблиц Хаффмана DC, установленных во время последнего вызова setDecodeTables, или null в случае отсутствия установленных таблиц.

JPEGQTable[] getQTables()

Возвращает копию массива квантования таблиц, установленных во время последнего вызова setDecodeTables, или null в случае отсутствия установленных таблиц.

void setDecodeTables​(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)

Задаёт квантования и таблицы Хаффмана для использования при декодировании сокращённых потоков.

void unsetDecodeTables()

Удаляет любые квантования и таблицы Хаффмана, которые в настоящее время установлены.

Методы, объявленные в классе javax.imageio.ImageReadParam

canSetSourceRenderSize, getDestination, getDestinationBands, getSourceMaxProgressivePass, getSourceMinProgressivePass, getSourceNumProgressivePasses, getSourceRenderSize, setDestination, setDestinationBands, setSourceProgressivePasses, setSourceRenderSize

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

Подробное описание конструкторов

JPEGImageReadParam

public JPEGImageReadParam()

Создаёт JPEGImageReadParam.

Подробное описание методов

areTablesSet

public boolean areTablesSet()

Возвращает true в случае, если таблицы в настоящее время установлены.

Возвращает:
true в случае наличия таблиц.

setDecodeTables

public void setDecodeTables(JPEGQTable[] qTables,
                            JPEGHuffmanTable[] DCHuffmanTables,
                            JPEGHuffmanTable[] ACHuffmanTables)

Задаёт квантования и таблицы Хаффмана для использования при декодировании сокращённых потоков. Может быть до 4 таблиц каждого типа. Эти таблицы игнорируются после обнаружения таблиц в потоке. Все аргументы должны быть не-null. Два массива таблиц Хаффмана должны иметь одинаковое количество элементов. Спецификаторы таблиц в заголовках кадра и сканирования в потоке предполагаются эквивалентными индексам в этих массивах. Массивы аргументов копируются этим методом.

Параметры:
qTables — массив объектов таблиц квантования.
DCHuffmanTables — массив объектов таблиц Хаффмана.
ACHuffmanTables — массив объектов таблиц Хаффмана.
Исключения:
IllegalArgumentException — если любой из аргументов пуст, содержит более 4 элементов или если количество таблиц DC и AC отличается.
См. также:
unsetDecodeTables()

unsetDecodeTables

public void unsetDecodeTables()

Удаляет любые квантования и таблицы Хаффмана, которые в настоящее время установлены.

См. также:
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

getQTables

public JPEGQTable[] getQTables()

Возвращает копию массива квантования таблиц, установленных во время последнего вызова setDecodeTables, или null в случае отсутствия установленных таблиц.

Возвращает:
массив объектов JPEGQTable, или null.
См. также:
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

getDCHuffmanTables

public JPEGHuffmanTable[] getDCHuffmanTables()

Возвращает копию массива таблиц Хаффмана DC, установленных во время последнего вызова setDecodeTables, или null в случае отсутствия установленных таблиц.

Возвращает:
массив объектов JPEGHuffmanTable, или null.
См. также:
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

getACHuffmanTables

public JPEGHuffmanTable[] getACHuffmanTables()

Возвращает копию массива таблиц Хаффмана AC, установленных во время последнего вызова setDecodeTables, или null в случае отсутствия установленных таблиц.

Возвращает:
массив объектов JPEGHuffmanTable, или null.
См. также:
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

© 1993, 2020, 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/11/docs/api/java.desktop/javax/imageio/plugins/jpeg/JPEGImageReadParam.html

Spec-Zone .ru
спецификации, руководства, описания, API