Spec-Zone.ru › OpenJDK 27

Класс JPEGImageReadParam

java.lang.Object
javax.imageio.IIOParam
javax.imageio.ImageReadParam
javax.imageio.plugins.jpeg.JPEGImageReadParam
public class JPEGImageReadParam extends ImageReadParam
Этот класс добавляет возможность задавать таблицы квантования и таблицы Хаффмана JPEG при использовании встроенного подключаемого модуля чтения JPEG. Экземпляр этого класса будет возвращён методами getDefaultImageReadParam встроенного модуля ImageReader JPEG.

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

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

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

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

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

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

Краткое описание полей

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

canSetSourceRenderSize, destination, destinationBands, minProgressivePass, numProgressivePasses, sourceRenderSize
Модификатор и тип Поле Описание
protected boolean canSetSourceRenderSize
true, если этот ImageReadParam позволяет задавать размеры отображения источника.
protected BufferedImage destination
Текущий BufferedImage назначения или null, если он не задан.
protected int[] destinationBands
Набор полос назначения, используемых в виде массива int.
protected int minProgressivePass
Минимальный индекс прогрессивного прохода, считываемого из источника.
protected int numProgressivePasses
Максимальное число прогрессивных проходов, считываемых из источника.
protected Dimension sourceRenderSize
Требуемые ширина и высота отображения источника, если canSetSourceRenderSize равно true, или null.

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

controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
Модификатор и тип Поле Описание
protected IIOParamController controller
IIOParamController, который будет использоваться для задания параметров этого объекта IIOParam при вызове метода activateController.
protected IIOParamController defaultController
IIOParamController по умолчанию, который будет использоваться для задания параметров этого объекта IIOParam при вызове метода activateController.
protected Point destinationOffset
Смещение в изображении назначения, куда следует поместить декодированный пиксель в верхнем левом углу.
protected ImageTypeSpecifier destinationType
ImageTypeSpecifier, используемый для создания изображения назначения при чтении или для задания выходного типа цвета при записи.
protected int[] sourceBands
Массив int, указывающий, какие полосы источника будут использоваться, или null.
protected Rectangle sourceRegion
Область источника; null, если она не задана.
protected int sourceXSubsampling
Шаг дискретизации по горизонтали.
protected int sourceYSubsampling
Шаг дискретизации по вертикали.
protected int subsamplingXOffset
Горизонтальное смещение, применяемое к сетке дискретизации перед выполнением дискретизации.
protected int 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()
Удаляет все заданные таблицы квантования и таблицы Хаффмана.

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

canSetSourceRenderSize, getDestination, getDestinationBands, getSourceMaxProgressivePass, getSourceMinProgressivePass, getSourceNumProgressivePasses, getSourceRenderSize, setDestination, setDestinationBands, setSourceProgressivePasses, setSourceRenderSize
Модификатор и тип Метод Описание
boolean canSetSourceRenderSize()
Возвращает true, если это средство чтения позволяет отображать исходное изображение в произвольном размере в процессе декодирования с помощью метода setSourceRenderSize.
BufferedImage getDestination()
Возвращает BufferedImage, заданный методом setDestination, или null, если он не задан.
int[] getDestinationBands()
Возвращает набор индексов полос, в которые будут помещены данные.
int getSourceMaxProgressivePass()
Если getSourceNumProgressivePasses равно Integer.MAX_VALUE, возвращает Integer.MAX_VALUE.
int getSourceMinProgressivePass()
Возвращает индекс первого прогрессивного прохода, который будет декодирован.
int getSourceNumProgressivePasses()
Возвращает число прогрессивных проходов, которые будут декодированы.
Dimension getSourceRenderSize()
Возвращает ширину и высоту исходного изображения в том виде, в котором оно будет отображаться при декодировании, если они заданы методом setSourceRenderSize.
void setDestination(BufferedImage destination)
Задаёт BufferedImage, который будет использоваться как назначение декодированных данных пикселей.
void setDestinationBands(int[] destinationBands)
Задаёт индексы полос назначения, в которые будут помещены данные.
void setSourceProgressivePasses(int minPass, int numPasses)
Задаёт диапазон прогрессивных проходов для декодирования.
void setSourceRenderSize(Dimension size)
Если изображение можно отображать в произвольном размере, задаёт ширину и высоту источника указанными значениями.

Методы, объявленные в классе IIOParam

activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
Модификатор и тип Метод Описание
boolean activateController()
Активирует установленный IIOParamController для этого объекта IIOParam и возвращает полученное значение.
IIOParamController getController()
Возвращает текущий установленный IIOParamController.
IIOParamController getDefaultController()
Возвращает IIOParamController по умолчанию, если он существует, независимо от установленного в данный момент контроллера.
Point getDestinationOffset()
Возвращает смещение в изображении назначения, в котором следует разместить пиксели.
ImageTypeSpecifier getDestinationType()
Возвращает тип изображения, которое будет возвращено при чтении, если он был задан вызовом setDestination(ImageTypeSpecifier), в виде ImageTypeSpecifier.
int[] getSourceBands()
Возвращает набор используемых полос источника.
Rectangle getSourceRegion()
Возвращает используемую область источника.
int getSourceXSubsampling()
Возвращает число столбцов источника, на которое нужно продвигаться для каждого пикселя.
int getSourceYSubsampling()
Возвращает число строк, на которое нужно продвигаться для каждого пикселя.
int getSubsamplingXOffset()
Возвращает горизонтальное смещение сетки дискретизации.
int getSubsamplingYOffset()
Возвращает вертикальное смещение сетки дискретизации.
boolean hasController()
Возвращает true, если для этого объекта IIOParam установлен контроллер.
void setController(IIOParamController controller)
Задаёт IIOParamController, используемый для задания параметров этого объекта IIOParam при вызове метода activateController; при этом контроллер по умолчанию переопределяется.
void setDestinationOffset(Point destinationOffset)
Задаёт смещение в изображении назначения, в котором следует размещать декодированные пиксели при чтении или записывать область при записи.
void setDestinationType(ImageTypeSpecifier destinationType)
Задаёт требуемый тип изображения назначения с помощью ImageTypeSpecifier.
void setSourceBands(int[] sourceBands)
Задаёт индексы используемых полос источника.
void setSourceRegion(Rectangle sourceRegion)
Задаёт интересующую область источника.
void setSourceSubsampling(int sourceXSubsampling, int sourceYSubsampling, int subsamplingXOffset, int subsamplingYOffset)
Задаёт шаг дискретизации для операций ввода-вывода.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.

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

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()
Удаляет все заданные таблицы квантования и таблицы Хаффмана.
См. также:
  • setDecodeTables(JPEGQTable[], JPEGHuffmanTable[], JPEGHuffmanTable[])

getQTables

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

getDCHuffmanTables

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

getACHuffmanTables

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, где содержатся более подробные описания для разработчиков, обзорные сведения, определения терминов, способы решения проблем и примеры рабочего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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