Класс JPEGImageReadParam
- java.lang.Object
-
- javax.imageio.IIOParam
-
- javax.imageio.ImageReadParam
-
- javax.imageio.plugins.jpeg.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() Создает |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
boolean |
areTablesSet() Возвращает |
JPEGHuffmanTable[] |
getACHuffmanTables() Возвращает копию массива таблиц AC Хаффмана, установленных при последнем вызове |
JPEGHuffmanTable[] |
getDCHuffmanTables() Возвращает копию массива таблиц DC Хаффмана, установленных при последнем вызове |
JPEGQTable[] |
getQTables() Возвращает копию массива таблиц квантования, установленных при последнем вызове |
void |
setDecodeTables(JPEGQTable[] qTables,
JPEGHuffmanTable[] DCHuffmanTables,
JPEGHuffmanTable[] ACHuffmanTables) Устанавливает таблицы квантования и Хаффмана для использования при декодировании сокращённых потоков. |
void |
unsetDecodeTables() Удаляет любые установленные таблицы квантования и Хаффмана. |
Методы унаследованные от класса javax.imageio.ImageReadParam
canSetSourceRenderSize, getDestination, getDestinationBands, getSourceMaxProgressivePass, getSourceMinProgressivePass, getSourceNumProgressivePasses, getSourceRenderSize, setDestination, setDestinationBands, setDestinationType, setSourceProgressivePasses, setSourceRenderSize
Методы унаследованные от класса javax.imageio.IIOParam
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, 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— если любой из аргументовnull, содержит более 4 элементов, или если количество таблиц DC и AC отличаются. - См. также:
unsetDecodeTables()
unsetDecodeTables
public void unsetDecodeTables()
Удаляет любые установленные таблицы квантования и Хаффмана.
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.