Spec-Zone.ru › OpenJDK 27

Класс PixelInterleavedSampleModel

java.lang.Object
java.awt.image.SampleModel
java.awt.image.ComponentSampleModel
java.awt.image.PixelInterleavedSampleModel
public class PixelInterleavedSampleModel extends ComponentSampleModel
Этот класс представляет данные изображения, хранящиеся с чередованием пикселей, для которых каждый отсчёт пикселя занимает один элемент данных в DataBuffer. Класс является подклассом ComponentSampleModel, но обеспечивает более эффективную реализацию доступа к данным изображения с чередованием пикселей, чем ComponentSampleModel. Этот класс хранит данные отсчётов для всех каналов в одном банке DataBuffer. Предоставляются методы доступа, позволяющие напрямую изменять данные изображения. Шаг пикселя — это количество элементов массива данных между двумя отсчётами одного и того же канала в одной строке сканирования. Шаг строки сканирования — это количество элементов массива данных между заданным отсчётом и соответствующим отсчётом в том же столбце следующей строки сканирования. Смещения каналов задают количество элементов массива данных от первого элемента массива данных банка DataBuffer, в котором хранится каждый канал, до первого отсчёта этого канала. Каналы нумеруются от 0 до N-1. Индексы банков задают соответствие между банком буфера данных и каналом данных изображения. Этот класс поддерживает типы данных TYPE_BYTE, TYPE_USHORT, TYPE_SHORT, TYPE_INT, TYPE_FLOAT и TYPE_DOUBLE.

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

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

bandOffsets, bankIndices, numBands, numBanks, pixelStride, scanlineStride
Модификатор и тип Поле Описание
protected int[] bandOffsets
Смещения всех каналов в элементах массива данных.
protected int[] bankIndices
Индекс каждого банка, в котором хранится канал данных изображения.
protected int numBands
Количество каналов в этом ComponentSampleModel.
protected int numBanks
Количество банков в этом ComponentSampleModel.
protected int pixelStride
Шаг пикселя (в элементах массива данных) области данных изображения, описываемой этим ComponentSampleModel.
protected int scanlineStride
Шаг строки (в элементах массива данных) области данных изображения, описываемой этим ComponentSampleModel.

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

dataType, height, width
Модификатор и тип Поле Описание
protected int dataType
Тип данных DataBuffer, в котором хранятся данные пикселей.
protected int height
Высота в пикселях области данных изображения, описываемой этим SampleModel.
protected int width
Ширина в пикселях области данных изображения, описываемой этим SampleModel.

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

Конструктор Описание
PixelInterleavedSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets)
Создаёт PixelInterleavedSampleModel с указанными параметрами.

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

Модификатор и тип Метод Описание
SampleModel createCompatibleSampleModel(int w, int h)
Создаёт новый PixelInterleavedSampleModel с указанными шириной и высотой.
SampleModel createSubsetSampleModel(int[] bands)
Создаёт новый PixelInterleavedSampleModel с подмножеством каналов этого PixelInterleavedSampleModel.

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

createDataBuffer, getBandOffsets, getBankIndices, getDataElements, getNumDataElements, getOffset, getOffset, getPixel, getPixels, getPixelStride, getSample, getSampleDouble, getSampleFloat, getSamples, getSampleSize, getSampleSize, getScanlineStride, setDataElements, setPixel, setPixels, setSample, setSample, setSample, setSamples
Модификатор и тип Метод Описание
DataBuffer createDataBuffer()
Создаёт DataBuffer, соответствующий этому ComponentSampleModel.
final int[] getBandOffsets()
Возвращает смещения всех каналов.
final int[] getBankIndices()
Возвращает индексы банков для всех каналов.
Object getDataElements(int x, int y, Object obj, DataBuffer data)
Возвращает данные одного пикселя в примитивном массиве типа TransferType.
final int getNumDataElements()
Возвращает количество элементов данных, необходимых для передачи пикселя с помощью методов ComponentSampleModel.getDataElements(int, int, Object, DataBuffer) и ComponentSampleModel.setDataElements(int, int, Object, DataBuffer).
int getOffset(int x, int y)
Получает смещение для первого канала пикселя (x,y).
int getOffset(int x, int y, int b)
Получает смещение для канала b пикселя (x,y).
int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
Возвращает отсчёты указанного пикселя в массиве int, по одному отсчёту на элемент массива.
int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Возвращает все отсчёты прямоугольной области пикселей в массиве int, по одному отсчёту на элемент массива.
final int getPixelStride()
Возвращает шаг пикселя этого ComponentSampleModel.
int getSample(int x, int y, int b, DataBuffer data)
Возвращает отсчёт указанного канала пикселя в точке (x,y) в виде значения int.
double getSampleDouble(int x, int y, int b, DataBuffer data)
Возвращает отсчёт указанного канала пикселя в точке (x,y) в виде значения double.
float getSampleFloat(int x, int y, int b, DataBuffer data)
Возвращает отсчёт указанного канала пикселя в точке (x,y) в виде значения float.
int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
Возвращает отсчёты указанного канала заданной прямоугольной области пикселей в массиве int, по одному отсчёту на элемент массива.
final int[] getSampleSize()
Возвращает количество бит на отсчёт для всех каналов.
final int getSampleSize(int band)
Возвращает количество бит на отсчёт для указанного канала.
final int getScanlineStride()
Возвращает шаг строки сканирования этого ComponentSampleModel.
void setDataElements(int x, int y, Object obj, DataBuffer data)
Задаёт данные одного пикселя в указанном DataBuffer из примитивного массива типа TransferType.
void setPixel(int x, int y, int[] iArray, DataBuffer data)
Задаёт пиксель в DataBuffer, используя для ввода массив отсчётов int.
void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Задаёт все отсчёты прямоугольной области пикселей из массива int, содержащего по одному отсчёту на элемент массива.
void setSample(int x, int y, int b, double s, DataBuffer data)
Задаёт отсчёт указанного канала пикселя в точке (x,y) в DataBuffer, используя для ввода значение double.
void setSample(int x, int y, int b, float s, DataBuffer data)
Задаёт отсчёт указанного канала пикселя в точке (x,y) в DataBuffer, используя для ввода значение float.
void setSample(int x, int y, int b, int s, DataBuffer data)
Задаёт отсчёт указанного канала пикселя в точке (x,y) в DataBuffer, используя для ввода значение int.
void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
Задаёт отсчёты указанного канала заданной прямоугольной области пикселей из массива int, содержащего по одному отсчёту на элемент массива.

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

getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamples
Модификатор и тип Метод Описание
Object getDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)
Возвращает данные пикселей заданной прямоугольной области в примитивном массиве типа TransferType.
final int getDataType()
Возвращает тип данных DataBuffer, в котором хранятся данные пикселей.
final int getHeight()
Возвращает высоту в пикселях.
final int getNumBands()
Возвращает общее количество каналов данных изображения.
double[] getPixel(int x, int y, double[] dArray, DataBuffer data)
Возвращает отсчёты указанного пикселя в массиве double.
float[] getPixel(int x, int y, float[] fArray, DataBuffer data)
Возвращает отсчёты указанного пикселя в массиве float.
double[] getPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data)
Возвращает все отсчёты прямоугольной области пикселей в массиве double, по одному отсчёту на элемент массива.
float[] getPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data)
Возвращает все отсчёты прямоугольной области пикселей в массиве float, по одному отсчёту на элемент массива.
double[] getSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data)
Возвращает отсчёты указанного канала заданной прямоугольной области пикселей в массиве double, по одному отсчёту на элемент массива.
float[] getSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data)
Возвращает отсчёты указанного канала заданной прямоугольной области пикселей в массиве float, по одному отсчёту на элемент массива.
int getTransferType()
Возвращает TransferType, используемый для передачи пикселей с помощью методов getDataElements и setDataElements.
final int getWidth()
Возвращает ширину в пикселях.
void setDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)
Задаёт данные прямоугольной области пикселей в указанном DataBuffer из примитивного массива типа TransferType.
void setPixel(int x, int y, double[] dArray, DataBuffer data)
Задаёт пиксель в DataBuffer, используя для ввода массив отсчётов double.
void setPixel(int x, int y, float[] fArray, DataBuffer data)
Задаёт пиксель в DataBuffer, используя для ввода массив отсчётов float.
void setPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data)
Задаёт все отсчёты прямоугольной области пикселей из массива double, содержащего по одному отсчёту на элемент массива.
void setPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data)
Задаёт все отсчёты прямоугольной области пикселей из массива float, содержащего по одному отсчёту на элемент массива.
void setSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data)
Задаёт отсчёты указанного канала заданной прямоугольной области пикселей из массива double, содержащего по одному отсчёту на элемент массива.
void setSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data)
Задаёт отсчёты указанного канала заданной прямоугольной области пикселей из массива float, содержащего по одному отсчёту на элемент массива.

Методы, объявленные в классе 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, либо до истечения заданного промежутка реального времени.

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

PixelInterleavedSampleModel

public PixelInterleavedSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets)
Создаёт PixelInterleavedSampleModel с указанными параметрами. Количество каналов определяется длиной массива bandOffsets.
Параметры:
dataType — тип данных для хранения отсчётов.
w — ширина (в пикселях) описываемой области данных изображения.
h — высота (в пикселях) описываемой области данных изображения.
pixelStride — шаг пикселя данных изображения.
scanlineStride — шаг строки данных изображения.
bandOffsets — смещения всех каналов.
Вызывает исключение:
IllegalArgumentException — если w или h не больше 0
IllegalArgumentException — если какое-либо смещение между каналами превышает шаг строки сканирования
IllegalArgumentException — если произведение pixelStride и w превышает scanlineStride
IllegalArgumentException — если pixelStride меньше любого смещения между каналами
IllegalArgumentException — если dataType не относится к поддерживаемым типам данных
NullPointerException — если bandOffsets равно null
IllegalArgumentException — если bandOffsets.length равно 0

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

createCompatibleSampleModel

public SampleModel createCompatibleSampleModel(int w, int h)
Создаёт новый PixelInterleavedSampleModel с указанными шириной и высотой. Новый PixelInterleavedSampleModel будет иметь такое же количество каналов, тот же тип данных хранения и тот же шаг пикселя, что и этот PixelInterleavedSampleModel. Смещения каналов могут быть сжаты таким образом, чтобы минимальное из всех смещений каналов было равно нулю.
Переопределяет:
createCompatibleSampleModel в классе ComponentSampleModel
Параметры:
w — ширина результирующего SampleModel
h — высота результирующего SampleModel
Возвращает:
новый SampleModel с указанными шириной и высотой.
Вызывает исключение:
IllegalArgumentException — если w или h не больше 0

createSubsetSampleModel

public SampleModel createSubsetSampleModel(int[] bands)
Создаёт новый PixelInterleavedSampleModel с подмножеством каналов этого PixelInterleavedSampleModel. Новый PixelInterleavedSampleModel можно использовать с любым DataBuffer, с которым можно использовать существующий PixelInterleavedSampleModel. Новая комбинация PixelInterleavedSampleModel/DataBuffer будет представлять изображение с подмножеством каналов исходной комбинации PixelInterleavedSampleModel/DataBuffer.
Переопределяет:
createSubsetSampleModel в классе ComponentSampleModel
Параметры:
bands — подмножество каналов этого ComponentSampleModel
Возвращает:
ComponentSampleModel, созданный с подмножеством каналов этого ComponentSampleModel.
Вызывает исключение:
NullPointerException — если bands равно null
IllegalArgumentException — если количество каналов не больше 0
RasterFormatException — если количество каналов превышает количество каналов в этой модели отсчётов.
ArrayIndexOutOfBoundsException — если индекс какого-либо канала выходит за допустимые границы

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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