Класс 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 |
Создаёт PixelInterleavedSampleModel с указанными параметрами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
SampleModel |
createCompatibleSampleModel |
Создаёт новый PixelInterleavedSampleModel с указанными шириной и высотой. |
SampleModel |
createSubsetSampleModel |
Создаёт новый 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 |
Возвращает данные одного пикселя в примитивном массиве типа TransferType. |
final int |
getNumDataElements() |
Возвращает количество элементов данных, необходимых для передачи пикселя с помощью методов ComponentSampleModel.getDataElements(int, int, Object, DataBuffer) и ComponentSampleModel.setDataElements(int, int, Object, DataBuffer). |
int |
getOffset |
Получает смещение для первого канала пикселя (x,y). |
int |
getOffset |
Получает смещение для канала b пикселя (x,y). |
int[] |
getPixel |
Возвращает отсчёты указанного пикселя в массиве int, по одному отсчёту на элемент массива. |
int[] |
getPixels |
Возвращает все отсчёты прямоугольной области пикселей в массиве int, по одному отсчёту на элемент массива. |
final int |
getPixelStride() |
Возвращает шаг пикселя этого ComponentSampleModel. |
int |
getSample |
Возвращает отсчёт указанного канала пикселя в точке (x,y) в виде значения int. |
double |
getSampleDouble |
Возвращает отсчёт указанного канала пикселя в точке (x,y) в виде значения double. |
float |
getSampleFloat |
Возвращает отсчёт указанного канала пикселя в точке (x,y) в виде значения float. |
int[] |
getSamples |
Возвращает отсчёты указанного канала заданной прямоугольной области пикселей в массиве int, по одному отсчёту на элемент массива. |
final int[] |
getSampleSize() |
Возвращает количество бит на отсчёт для всех каналов. |
final int |
getSampleSize |
Возвращает количество бит на отсчёт для указанного канала. |
final int |
getScanlineStride() |
Возвращает шаг строки сканирования этого ComponentSampleModel. |
void |
setDataElements |
Задаёт данные одного пикселя в указанном DataBuffer из примитивного массива типа TransferType. |
void |
setPixel |
Задаёт пиксель в DataBuffer, используя для ввода массив отсчётов int. |
void |
setPixels |
Задаёт все отсчёты прямоугольной области пикселей из массива int, содержащего по одному отсчёту на элемент массива. |
void |
setSample |
Задаёт отсчёт указанного канала пикселя в точке (x,y) в DataBuffer, используя для ввода значение double. |
void |
setSample |
Задаёт отсчёт указанного канала пикселя в точке (x,y) в DataBuffer, используя для ввода значение float. |
void |
setSample |
Задаёт отсчёт указанного канала пикселя в точке (x,y) в DataBuffer, используя для ввода значение int. |
void |
setSamples |
Задаёт отсчёты указанного канала заданной прямоугольной области пикселей из массива int, содержащего по одному отсчёту на элемент массива. |
Методы, объявленные в классе SampleModel
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamples | Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
getDataElements |
Возвращает данные пикселей заданной прямоугольной области в примитивном массиве типа TransferType. |
final int |
getDataType() |
Возвращает тип данных DataBuffer, в котором хранятся данные пикселей. |
final int |
getHeight() |
Возвращает высоту в пикселях. |
final int |
getNumBands() |
Возвращает общее количество каналов данных изображения. |
double[] |
getPixel |
Возвращает отсчёты указанного пикселя в массиве double. |
float[] |
getPixel |
Возвращает отсчёты указанного пикселя в массиве float. |
double[] |
getPixels |
Возвращает все отсчёты прямоугольной области пикселей в массиве double, по одному отсчёту на элемент массива. |
float[] |
getPixels |
Возвращает все отсчёты прямоугольной области пикселей в массиве float, по одному отсчёту на элемент массива. |
double[] |
getSamples |
Возвращает отсчёты указанного канала заданной прямоугольной области пикселей в массиве double, по одному отсчёту на элемент массива. |
float[] |
getSamples |
Возвращает отсчёты указанного канала заданной прямоугольной области пикселей в массиве float, по одному отсчёту на элемент массива. |
int |
getTransferType() |
Возвращает TransferType, используемый для передачи пикселей с помощью методов getDataElements и setDataElements. |
final int |
getWidth() |
Возвращает ширину в пикселях. |
void |
setDataElements |
Задаёт данные прямоугольной области пикселей в указанном DataBuffer из примитивного массива типа TransferType. |
void |
setPixel |
Задаёт пиксель в DataBuffer, используя для ввода массив отсчётов double. |
void |
setPixel |
Задаёт пиксель в DataBuffer, используя для ввода массив отсчётов float. |
void |
setPixels |
Задаёт все отсчёты прямоугольной области пикселей из массива double, содержащего по одному отсчёту на элемент массива. |
void |
setPixels |
Задаёт все отсчёты прямоугольной области пикселей из массива float, содержащего по одному отсчёту на элемент массива. |
void |
setSamples |
Задаёт отсчёты указанного канала заданной прямоугольной области пикселей из массива double, содержащего по одному отсчёту на элемент массива. |
void |
setSamples |
Задаёт отсчёты указанного канала заданной прямоугольной области пикселей из массива float, содержащего по одному отсчёту на элемент массива. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект другому объекту. |
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 |
Заставляет текущий поток ожидать до пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать до пробуждения, обычно вследствие вызова 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— если индекс какого-либо канала выходит за допустимые границы
© 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.