Класс 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 | Модификатор и тип | Поле | Описание |
|---|---|---|
protected int |
dataType |
Тип данных DataBuffer, в котором хранятся данные пикселей. |
protected int |
height |
Высота в пикселях области данных изображения, описываемой этим SampleModel. |
protected int |
numBands |
Количество полос данных изображения, описываемых этим SampleModel. |
protected int |
width |
Ширина в пикселях области данных изображения, описываемой этим SampleModel. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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, содержащего по одному отсчёту на элемент массива. |
Методы, объявленные в классе SampleModel
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSampleDouble, getSampleFloat, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSample, setSample, 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 |
getSampleDouble |
Возвращает отсчёт заданной полосы пикселя с координатами (x,y) в виде значения double. |
float |
getSampleFloat |
Возвращает отсчёт заданной полосы пикселя с координатами (x,y) в виде значения 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 |
setSample |
Задаёт отсчёт указанной полосы для пикселя с координатами (x,y) в DataBuffer, используя в качестве входных данных значение double. |
void |
setSample |
Задаёт отсчёт указанной полосы для пикселя с координатами (x,y) в DataBuffer, используя в качестве входных данных значение 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, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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— указанная полоса - Возвращает:
- размер отсчетов указанной полосы.
- Исключения:
-
ArrayIndexOutOfBoundsException— если индексbandменьше нуля или больше либо равенgetNumBands()
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.- Исключения:
-
NullPointerException— еслиbandsравноnull -
IllegalArgumentException— если количество полос не больше 0 -
RasterFormatException— если длина аргумента bands превышает количество полос в модели отсчетов. -
ArrayIndexOutOfBoundsException— если какой-либо индекс банка выходит за допустимые границы
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, содержащий данные изображения. - Возвращает:
- данные указанного пикселя.
- Исключения:
-
NullPointerException— еслиdataравноnull. -
ArrayIndexOutOfBoundsException— если координаты выходят за допустимые границы или obj слишком мал для хранения результата. - См. также:
getPixel
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
- Переопределено:
-
getPixelв классеSampleModel - Параметры:
-
x— координата X местоположения пикселя -
y— координата Y местоположения пикселя -
iArray— если не равен null, отсчеты возвращаются в этот массив -
data— DataBuffer, содержащий данные изображения - Возвращает:
- отсчеты указанного пикселя.
- Исключения:
-
NullPointerException— еслиdataравноnull. -
ArrayIndexOutOfBoundsException— если координаты выходят за допустимые границы илиiArrayслишком мал для хранения результата. - См. также:
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, содержащий данные изображения. - Возвращает:
- отсчеты указанной области пикселей.
- Исключения:
-
NullPointerException— еслиdataравноnull. -
ArrayIndexOutOfBoundsException— если координаты выходят за допустимые границы,wилиhотрицательно либоiArrayслишком мал для хранения результата. - См. также:
getSample
public int getSample(int x, int y, int b, DataBuffer data)
- Определено в:
-
getSamplein classSampleModel - Параметры:
-
x- Координата X положения пикселя. -
y- Координата Y положения пикселя. -
b- Полоса, значение которой нужно вернуть. -
data- DataBuffer, содержащий данные изображения. - Возвращает:
- значение отсчёта в указанной полосе для заданного пикселя.
- Выбрасывает:
-
NullPointerException- еслиdataявляетсяnull. -
ArrayIndexOutOfBoundsException- если координаты или индекс полосы выходят за допустимые пределы. - См. также:
getSamples
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
- Переопределено:
-
getSamplesin classSampleModel - Параметры:
-
x- Координата X положения верхнего левого пикселя. -
y- Координата Y положения верхнего левого пикселя. -
w- Ширина прямоугольника пикселей. -
h- Высота прямоугольника пикселей. -
b- Полоса, значения которой нужно вернуть. -
iArray- Если значение не равно null, возвращает значения отсчётов в этом массиве. -
data- DataBuffer, содержащий данные изображения. - Возвращает:
- значения отсчётов в указанной полосе для заданной области пикселей.
- Выбрасывает:
-
NullPointerException- еслиdataявляетсяnull. -
ArrayIndexOutOfBoundsException- если координаты или индекс полосы выходят за допустимые пределы, либоwилиhменьше нуля, либоiArrayслишком мал для размещения результата. - См. также:
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 недостаточно велик для размещения данных пикселя.
- Определено в:
-
setDataElementsin classSampleModel - Параметры:
-
x- Координата X положения пикселя. -
y- Координата Y положения пикселя. -
obj- Примитивный массив, содержащий данные пикселя. -
data- DataBuffer, содержащий данные изображения. - Выбрасывает:
-
NullPointerException- еслиobjилиdataявляетсяnull. -
ArrayIndexOutOfBoundsException- если координаты выходят за допустимые пределы или obj слишком мал для размещения входных данных. - См. также:
setPixel
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
- Переопределено:
-
setPixelin classSampleModel - Параметры:
-
x- Координата X положения пикселя. -
y- Координата Y положения пикселя. -
iArray- Входные значения отсчётов в массиве int. -
data- DataBuffer, содержащий данные изображения. - Выбрасывает:
-
NullPointerException- еслиiArrayили {code data} являетсяnull. -
ArrayIndexOutOfBoundsException- если координаты выходят за допустимые пределы илиiArrayслишком мал для размещения входных данных. - См. также:
setPixels
public void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
- Переопределено:
-
setPixelsin classSampleModel - Параметры:
-
x- Координата X положения верхнего левого пикселя. -
y- Координата Y положения верхнего левого пикселя. -
w- Ширина прямоугольника пикселей. -
h- Высота прямоугольника пикселей. -
iArray- Входные значения отсчётов в массиве int. -
data- DataBuffer, содержащий данные изображения. - Выбрасывает:
-
NullPointerException- еслиiArrayилиdataявляетсяnull. -
ArrayIndexOutOfBoundsException- если координаты выходят за допустимые пределы, либоwилиhменьше нуля, либоiArrayслишком мал для размещения входных данных. - См. также:
setSample
public void setSample(int x, int y, int b, int s, DataBuffer data)
SampleModel- Определено в:
-
setSamplein classSampleModel - Параметры:
-
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)
- Переопределено:
-
setSamplesin classSampleModel - Параметры:
-
x- Координата X положения верхнего левого пикселя. -
y- Координата Y положения верхнего левого пикселя. -
w- Ширина прямоугольника пикселей. -
h- Высота прямоугольника пикселей. -
b- Полоса, значение которой нужно установить. -
iArray- Входные значения отсчётов в массиве int. -
data- DataBuffer, содержащий данные изображения. - Выбрасывает:
-
NullPointerException- еслиiArrayилиdataявляетсяnull. -
ArrayIndexOutOfBoundsException- если координаты или индекс полосы выходят за допустимые пределы, либоwилиhменьше нуля, либоiArrayслишком мал для размещения входных данных. - См. также:
© 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.