Класс 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. |
SinglePixelPackedSampleModel |
Создаёт SinglePixelPackedSampleModel с полосами, равными длине bitMasks, и шагом строки сканирования, равным 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соответствующий этому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- если длина аргумента полос больше, чем количество полос в модели образца.
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 допустимо, если SampleModels имеют одинаковое количество полос, соответствующие полосы имеют одинаковое количество бит на образец, и TransferTypes одинаковы. Если 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)
- Overrides:
-
getPixelsв классеSampleModel - Parameters:
-
x- Координата X верхнего левого пикселя. -
y- Координата Y верхнего левого пикселя. -
w- Ширина прямоугольника пикселей. -
h- Высота прямоугольника пикселей. -
iArray- Если не null, возвращает образцы в этом массиве. -
data- DataBuffer, содержащий данные изображения. - Returns:
- все образцы для заданной области пикселей.
- See Also:
getSample
public int getSample(int x, int y, int b, DataBuffer data)
- Specified by:
-
getSampleв классеSampleModel - Parameters:
-
x- Координата X местоположения пикселя. -
y- Координата Y местоположения пикселя. -
b- Полоса для возврата. -
data- DataBuffer, содержащий данные изображения. - Returns:
- образец в указанной полосе для заданного пикселя.
- See Also:
getSamples
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
- Overrides:
-
getSamplesв классеSampleModel - Parameters:
-
x- Координата X верхнего левого пикселя. -
y- Координата Y верхнего левого пикселя. -
w- Ширина прямоугольника пикселей. -
h- Высота прямоугольника пикселей. -
b- Номер полосы для возврата. -
iArray- Если не null, возвращает образцы в этом массиве. -
data- DataBuffer, содержащий данные изображения. - Returns:
- образцы для указанной полосы для заданной области пикселей.
- See Also:
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 - Parameters:
-
x- Координата X местоположения пикселя. -
y- Координата Y местоположения пикселя. -
obj- Примитивный массив, содержащий данные пикселя. -
data- DataBuffer, содержащий данные изображения. - See Also:
setPixel
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
- Overrides:
-
setPixelв классеSampleModel - Parameters:
-
x- Координата X местоположения пикселя. -
y- Координата Y местоположения пикселя. -
iArray- Входные образцы в массиве int. -
data- DataBuffer, содержащий данные изображения. - See Also:
setPixels
public void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
- Overrides:
-
setPixelsв классеSampleModel - Parameters:
-
x- Координата X верхнего левого пикселя. -
y- Координата Y верхнего левого пикселя. -
w- Ширина прямоугольника пикселей. -
h- Высота прямоугольника пикселей. -
iArray- Входные образцы в массиве int. -
data- DataBuffer, содержащий данные изображения. - See Also:
setSample
public void setSample(int x, int y, int b, int s, DataBuffer data)
- Specified by:
-
setSampleв классеSampleModel - Parameters:
-
x- Координата X местоположения пикселя. -
y- Координата Y местоположения пикселя. -
b- Номер полосы для установки. -
s- Входной образец в виде int. -
data- DataBuffer, содержащий данные изображения. - See Also:
setSamples
public void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
- Overrides:
-
setSamplesв классеSampleModel - Parameters:
-
x- Координата X верхнего левого пикселя. -
y- Координата Y верхнего левого пикселя. -
w- Ширина прямоугольника пикселей. -
h- Высота прямоугольника пикселей. -
b- Номер полосы для установки. -
iArray- Входные образцы в массиве int. -
data- DataBuffer, содержащий данные изображения. - See Also:
© 1993, 2023, 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/21/docs/api/java.desktop/java/awt/image/SinglePixelPackedSampleModel.html