Класс SinglePixelPackedSampleModel
public class SinglePixelPackedSampleModel extends SampleModel
TYPE_BYTE, TYPE_USHORT, TYPE_INT. Все элементы массива данных находятся в первом банке DataBuffer. Предоставляются методы доступа, позволяющие напрямую обрабатывать данные изображения. Шаг строки сканирования — это количество элементов массива данных между заданным отсчётом и соответствующим отсчётом в том же столбце следующей строки сканирования. Битовые маски — это маски, необходимые для извлечения отсчётов, представляющих полосы пикселя. Битовые смещения — это смещения в битах внутри элемента массива данных для отсчётов, представляющих полосы пикселя. В следующем примере кода показано извлечение битов отсчёта, представляющего полосу b пикселя x,y из DataBuffer data:
int sample = data.getElem(y * scanlineStride + x);
sample = (sample & bitMasks[b]) >>> bitOffsets[b];
Краткое описание полей
Поля, объявленные в классе SampleModel
dataType, height, numBands, width
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SinglePixelPackedSampleModel |
Создаёт SinglePixelPackedSampleModel с количеством полос, равным bitMasks.length. |
SinglePixelPackedSampleModel |
Создаёт SinglePixelPackedSampleModel с количеством полос, равным bitMasks.length, и шагом строки сканирования, равным scanlineStride элементам массива данных. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
SampleModel |
createCompatibleSampleModel |
Создаёт новый SinglePixelPackedSampleModel с указанными шириной и высотой. |
DataBuffer |
createDataBuffer() |
Создаёт DataBuffer, соответствующий этому SinglePixelPackedSampleModel. |
SampleModel |
createSubsetSampleModel |
Создаёт новый SinglePixelPackedSampleModel, содержащий подмножество полос этого SinglePixelPackedSampleModel. |
int[] |
getBitMasks() |
Возвращает битовые маски для всех полос. |
int[] |
getBitOffsets() |
Возвращает битовые смещения внутри элемента массива данных, представляющего пиксель, для всех полос. |
Object |
getDataElements |
Возвращает данные для одного пикселя в примитивном массиве типа TransferType. |
int |
getNumDataElements() |
Возвращает количество элементов данных, необходимых для передачи одного пикселя с помощью методов getDataElements и setDataElements. |
int |
getOffset |
Возвращает смещение (в элементах массива данных) пикселя (x,y). |
int[] |
getPixel |
Возвращает все отсчёты указанного пикселя в массиве int. |
int[] |
getPixels |
Возвращает все отсчёты указанной прямоугольной области пикселей в массиве int, по одному отсчёту в каждом элементе массива. |
int |
getSample |
Возвращает в виде int отсчёт указанной полосы для пикселя с координатами (x,y). |
int[] |
getSamples |
Возвращает отсчёты указанной полосы для заданной прямоугольной области пикселей в массиве int, по одному отсчёту в каждом элементе массива. |
int[] |
getSampleSize() |
Возвращает количество битов на отсчёт для всех полос. |
int |
getSampleSize |
Возвращает количество битов на отсчёт для указанной полосы. |
int |
getScanlineStride() |
Возвращает шаг строки сканирования этого SinglePixelPackedSampleModel. |
void |
setDataElements |
Задаёт данные для одного пикселя в указанном DataBuffer, используя примитивный массив типа TransferType. |
void |
setPixel |
Задаёт пиксель в DataBuffer, используя для входных данных массив отсчётов int. |
void |
setPixels |
Задаёт все отсчёты прямоугольной области пикселей, используя массив int, содержащий по одному отсчёту в каждом элементе массива. |
void |
setSample |
Задаёт отсчёт указанной полосы для пикселя с координатами (x,y) в DataBuffer, используя значение int в качестве входных данных. |
void |
setSamples |
Задаёт отсчёты указанной полосы для заданной прямоугольной области пикселей, используя массив int, содержащий по одному отсчёту в каждом элементе массива. |
Методы, объявленные в классе SampleModel
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSampleDouble, getSampleFloat, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSample, setSample, setSamples, setSamples
Подробное описание конструкторов
SinglePixelPackedSampleModel
public SinglePixelPackedSampleModel(int dataType, int w, int h, int[] bitMasks)
- Параметры:
-
dataType— тип данных для хранения отсчетов. -
w— ширина (в пикселях) описываемой области данных изображения. -
h— высота (в пикселях) описываемой области данных изображения. -
bitMasks— битовые маски для всех каналов. - Исключения:
-
IllegalArgumentException— еслиdataTypeне является ниDataBuffer.TYPE_BYTE, ниDataBuffer.TYPE_USHORT, ниDataBuffer.TYPE_INT
SinglePixelPackedSampleModel
public SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bitMasks)
- Параметры:
-
dataType— тип данных для хранения отсчетов. -
w— ширина (в пикселях) описываемой области данных изображения. -
h— высота (в пикселях) описываемой области данных изображения. -
scanlineStride— шаг строки данных изображения. -
bitMasks— битовые маски для всех каналов. - Исключения:
-
IllegalArgumentException— еслиwилиhне больше 0 -
IllegalArgumentException— если какая-либо маска вbitMaskне является непрерывной -
IllegalArgumentException— еслиdataTypeне является ниDataBuffer.TYPE_BYTE, ниDataBuffer.TYPE_USHORT, ниDataBuffer.TYPE_INT
Подробное описание методов
getNumDataElements
public int getNumDataElements()
- Определено в:
-
getNumDataElementsв классеSampleModel - Возвращает:
- количество элементов данных.
- См. также:
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
- Определено в:
-
createCompatibleSampleModelв классеSampleModel - Параметры:
-
w— ширина результирующегоSampleModel -
h— высота результирующегоSampleModel - Возвращает:
SinglePixelPackedSampleModelс указанными шириной и высотой.- Исключения:
-
IllegalArgumentException— еслиwилиhне больше 0
createDataBuffer
public DataBuffer createDataBuffer()
- Определено в:
-
createDataBufferв классеSampleModel - Возвращает:
DataBuffer, соответствующий этомуSampleModel.
getSampleSize
public int[] getSampleSize()
- Определено в:
-
getSampleSizeв классеSampleModel - Возвращает:
- размер отсчетов для всех каналов.
getSampleSize
public int getSampleSize(int band)
- Определено в:
-
getSampleSizeв классеSampleModel - Параметры:
-
band— указанный канал - Возвращает:
- размер отсчетов указанного канала.
getOffset
public int getOffset(int x, int y)
x,y, можно получить из DataBuffer data с помощью SinglePixelPackedSampleModel sppsm следующим образом:
data.getElem(sppsm.getOffset(x, y));
- Параметры:
-
x— координата X указанного пикселя -
y— координата Y указанного пикселя - Возвращает:
- смещение указанного пикселя.
getBitOffsets
public int[] getBitOffsets()
- Возвращает:
- битовые смещения, представляющие пиксель для всех каналов.
getBitMasks
public int[] getBitMasks()
- Возвращает:
- битовые маски для всех каналов.
getScanlineStride
public int getScanlineStride()
- Возвращает:
- шаг строки этого
SinglePixelPackedSampleModel.
createSubsetSampleModel
public SampleModel createSubsetSampleModel(int[] bands)
- Определено в:
-
createSubsetSampleModelв классеSampleModel - Параметры:
-
bands— подмножество каналов этогоSampleModel - Возвращает:
SampleModelс подмножеством каналов этогоSampleModel.- Исключения:
-
RasterFormatException— если длина аргумента bands превышает количество каналов в модели отсчетов.
getDataElements
public Object getDataElements(int x, int y, Object obj, DataBuffer data)
Следующий код демонстрирует передачу данных одного пикселя из DataBuffer db1, размещение данных в котором описывается SinglePixelPackedSampleModel sppsm1, в DataBuffer db2, размещение данных в котором описывается SinglePixelPackedSampleModel sppsm2. Такая передача обычно эффективнее использования getPixel/setPixel.
SinglePixelPackedSampleModel sppsm1, sppsm2;
DataBufferInt db1, db2;
sppsm2.setDataElements(x, y, sppsm1.getDataElements(x, y, null,
db1), db2);
Использовать getDataElements/setDataElements для передачи данных между двумя парами DataBuffer/SampleModel допустимо, если SampleModel имеют одинаковое количество каналов, соответствующие каналы имеют одинаковое количество битов на отсчет, а TransferType совпадают. Если obj не равен null, он должен быть примитивным массивом типа TransferType. В противном случае будет выброшено исключение ClassCastException. Исключение ArrayIndexOutOfBoundsException может быть выброшено, если координаты выходят за границы или если obj не равен null и его размера недостаточно для хранения данных пикселя.
- Определено в:
-
getDataElementsв классеSampleModel - Параметры:
-
x— координата X расположения пикселя. -
y— координата Y расположения пикселя. -
obj— если не равен null, примитивный массив, в который будут возвращены данные пикселя. -
data— DataBuffer, содержащий данные изображения. - Возвращает:
- данные указанного пикселя.
- См. также:
getPixel
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
- Переопределено:
-
getPixelв классеSampleModel - Параметры:
-
x— координата X расположения пикселя. -
y— координата Y расположения пикселя. -
iArray— если не равен null, возвращает отсчеты в этом массиве -
data— DataBuffer, содержащий данные изображения. - Возвращает:
- все отсчеты указанного пикселя.
- См. также:
getPixels
public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
- Переопределено:
-
getPixelsв классеSampleModel - Параметры:
-
x— координата X верхнего левого пикселя. -
y— координата Y верхнего левого пикселя. -
w— ширина прямоугольника пикселей. -
h— высота прямоугольника пикселей. -
iArray— если не равен null, возвращает отсчеты в этом массиве. -
data— DataBuffer, содержащий данные изображения. - Возвращает:
- все отсчеты указанной области пикселей.
- См. также:
getSample
public int getSample(int x, int y, int b, DataBuffer data)
- Определено в:
-
getSampleв классеSampleModel - Параметры:
-
x— координата X расположения пикселя. -
y— координата Y расположения пикселя. -
b— канал, значение которого нужно вернуть. -
data— DataBuffer, содержащий данные изображения. - Возвращает:
- значение отсчета указанного канала указанного пикселя.
- См. также:
getSamples
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
- Переопределяет:
-
getSamplesв классеSampleModel - Параметры:
-
x- Координата X верхнего левого пикселя. -
y- Координата Y верхнего левого пикселя. -
w- Ширина прямоугольника пикселей. -
h- Высота прямоугольника пикселей. -
b- Полоса, которую нужно вернуть. -
iArray- Если не равно null, возвращает отсчёты в этом массиве. -
data- DataBuffer, содержащий данные изображения. - Возвращает:
- отсчёты указанной полосы для заданной области пикселей.
- См. также:
setDataElements
public void setDataElements(int x, int y, Object obj, DataBuffer data)
Следующий код демонстрирует передачу данных одного пикселя из DataBuffer db1, структура хранения которого описана с помощью SinglePixelPackedSampleModel sppsm1, в DataBuffer db2, структура хранения которого описана с помощью SinglePixelPackedSampleModel sppsm2. Как правило, такая передача выполняется эффективнее, чем использование getPixel/setPixel.
SinglePixelPackedSampleModel sppsm1, sppsm2;
DataBufferInt db1, db2;
sppsm2.setDataElements(x, y, sppsm1.getDataElements(x, y, null,
db1), db2);
Использование getDataElements/setDataElements для передачи данных между двумя парами DataBuffer/SampleModel допустимо, если SampleModels имеют одинаковое число полос, соответствующие полосы содержат одинаковое число бит на отсчёт, а TransferTypes совпадают. obj должен быть примитивным массивом типа TransferType. В противном случае выбрасывается исключение ClassCastException. Исключение ArrayIndexOutOfBoundsException может быть выброшено, если координаты выходят за допустимые границы или если obj недостаточно велик для хранения данных пикселя.
- Определено в:
-
setDataElementsв классеSampleModel - Параметры:
-
x- Координата X пикселя. -
y- Координата Y пикселя. -
obj- Примитивный массив, содержащий данные пикселя. -
data- DataBuffer, содержащий данные изображения. - См. также:
setPixel
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
- Переопределяет:
-
setPixelв классеSampleModel - Параметры:
-
x- Координата X пикселя. -
y- Координата Y пикселя. -
iArray- Входные отсчёты в массиве int. -
data- DataBuffer, содержащий данные изображения. - См. также:
setPixels
public void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
- Переопределяет:
-
setPixelsв классеSampleModel - Параметры:
-
x- Координата X верхнего левого пикселя. -
y- Координата Y верхнего левого пикселя. -
w- Ширина прямоугольника пикселей. -
h- Высота прямоугольника пикселей. -
iArray- Входные отсчёты в массиве int. -
data- DataBuffer, содержащий данные изображения. - См. также:
setSample
public void setSample(int x, int y, int b, int s, DataBuffer data)
- Определено в:
-
setSampleв классеSampleModel - Параметры:
-
x- Координата X пикселя. -
y- Координата Y пикселя. -
b- Полоса, для которой задаётся значение. -
s- Входной отсчёт типа int. -
data- DataBuffer, содержащий данные изображения. - См. также:
setSamples
public void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
- Переопределяет:
-
setSamplesв классеSampleModel - Параметры:
-
x- Координата X верхнего левого пикселя. -
y- Координата Y верхнего левого пикселя. -
w- Ширина прямоугольника пикселей. -
h- Высота прямоугольника пикселей. -
b- Полоса, для которой задаются значения. -
iArray- Входные отсчёты в массиве int. -
data- DataBuffer, содержащий данные изображения. - См. также:
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/image/SinglePixelPackedSampleModel.html