Класс 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];
Краткое описание полей
Поля, объявленные в классе java.awt.image.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 |
Возвращает выборку в указанной полосе для пикселя, расположенного в координатах (x,y), как int. |
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, содержащего одну выборку на элемент массива. |
Методы, объявленные в классе java.awt.image.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, соответствующий этому SinglePixelPackedSampleModel.
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- подмножество полос этого SinglePixelPackedSampleModel - Возвращает:
- SinglePixelPackedSampleModel с подмножеством полос этого SinglePixelPackedSampleModel.
- Исключения:
-
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)
- Overrides:
-
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)
- Overrides:
-
getPixelsв классеSampleModel - Параметры:
-
x- Координата X верхнего левого пикселя. -
y- Координата Y верхнего левого пикселя. -
w- Ширина прямоугольника пикселей. -
h- Высота прямоугольника пикселей. -
iArray- Если не null, возвращает образцы в этом массиве. -
data- DataBuffer, содержащий данные изображения. - Возвращает:
- все образцы для указанной области пикселей.
- См. также:
getSample
public int getSample(int x, int y, int b, DataBuffer data)
- Specified by:
-
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)
- Overrides:
-
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 допустимо, если SampleModel имеют одинаковое количество полос, соответствующие полосы имеют одинаковое количество бит на образец, и типы TransferType совпадают. obj должен быть примитивным массивом типа TransferType. В противном случае выбрасывается ClassCastException. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты не находятся в пределах границ или если obj недостаточно велик для хранения данных пикселя.
- Specified by:
-
setDataElementsв классеSampleModel - Параметры:
-
x- Координата X расположения пикселя. -
y- Координата Y расположения пикселя. -
obj- Примитивный массив, содержащий данные пикселя. -
data- DataBuffer, содержащий данные изображения. - См. также:
setPixel
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
- Overrides:
-
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)
- Overrides:
-
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)
- Specified by:
-
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)
- Overrides:
-
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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/image/SinglePixelPackedSampleModel.html