Класс ComponentSampleModel
- Прямые известные подклассы:
BandedSampleModel, PixelInterleavedSampleModel
public class ComponentSampleModel extends SampleModel
DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT или DataBuffer.TYPE_INT соответственно), данные, в которых каждый отсчёт является знаковым целым числом, хранящимся в 16 битах (с использованием DataBuffer.TYPE_SHORT), или данные, в которых каждый отсчёт является знаковым числом с плавающей точкой или числом двойной точности (с использованием DataBuffer.TYPE_FLOAT или DataBuffer.TYPE_DOUBLE соответственно). Все отсчёты данного ComponentSampleModel хранятся с одинаковой точностью. Все шаги и смещения должны быть неотрицательными. Этот класс поддерживает TYPE_BYTE, TYPE_USHORT, TYPE_SHORT, TYPE_INT, TYPE_FLOAT, TYPE_DOUBLE,- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ComponentSampleModel |
Создаёт ComponentSampleModel с указанными параметрами. |
ComponentSampleModel |
Создаёт ComponentSampleModel с указанными параметрами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
SampleModel |
createCompatibleSampleModel |
Создаёт новый ComponentSampleModel с указанными шириной и высотой. |
DataBuffer |
createDataBuffer() |
Создаёт DataBuffer, соответствующий этому ComponentSampleModel. |
SampleModel |
createSubsetSampleModel |
Создаёт новый ComponentSampleModel с подмножеством полос этого ComponentSampleModel. |
final int[] |
getBandOffsets() |
Возвращает смещения полос для всех полос. |
final int[] |
getBankIndices() |
Возвращает индексы банков для всех полос. |
Object |
getDataElements |
Возвращает данные для одного пикселя в примитивном массиве типа TransferType. |
final int |
getNumDataElements() |
Возвращает количество элементов данных, необходимых для передачи пикселя с помощью методов getDataElements(int, int, Object, DataBuffer) и 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 |
Возвращает в виде int отсчёт указанной полосы пикселя, расположенного в точке (x,y). |
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
Подробное описание полей
bandOffsets
protected int[] bandOffsets
bankIndices
protected int[] bankIndices
numBands
protected int numBands
ComponentSampleModel.numBanks
protected int numBanks
ComponentSampleModel.scanlineStride
protected int scanlineStride
pixelStride
protected int pixelStride
Подробное описание конструкторов
ComponentSampleModel
public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets)
- Параметры:
-
dataType— тип данных для хранения отсчетов -
w— ширина (в пикселях) описываемой области данных изображения -
h— высота (в пикселях) описываемой области данных изображения -
pixelStride— шаг пикселя описываемой области данных изображения -
scanlineStride— шаг строки описываемой области данных изображения -
bandOffsets— смещения всех полос - Исключения:
-
IllegalArgumentException— еслиwиhне являются оба числами больше 0 -
IllegalArgumentException— если произведениеwиhбольшеInteger.MAX_VALUE -
IllegalArgumentException— еслиpixelStrideменьше 0 -
IllegalArgumentException— еслиscanlineStrideменьше 0 -
NullPointerException— еслиbandOffsetsравноnull -
IllegalArgumentException— еслиbandOffsets.lengthравно 0 -
IllegalArgumentException— еслиdataTypeне относится к поддерживаемым типам данных этой модели отсчетов.
ComponentSampleModel
public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bankIndices, int[] bandOffsets)
- Параметры:
-
dataType— тип данных для хранения отсчетов -
w— ширина (в пикселях) описываемой области данных изображения -
h— высота (в пикселях) описываемой области данных изображения -
pixelStride— шаг пикселя описываемой области данных изображения -
scanlineStride— шаг строки описываемой области данных изображения -
bankIndices— индексы банков для всех полос -
bandOffsets— смещения всех полос - Исключения:
-
IllegalArgumentException— еслиwиhне являются оба числами больше 0 -
IllegalArgumentException— если произведениеwиhбольшеInteger.MAX_VALUE -
IllegalArgumentException— еслиpixelStrideменьше 0 -
IllegalArgumentException— еслиscanlineStrideменьше 0 -
NullPointerException— еслиbankIndicesравноnull -
NullPointerException— еслиbandOffsetsравноnull -
IllegalArgumentException— еслиbandOffsets.lengthравно 0 -
IllegalArgumentException— если длинаbankIndicesне равна длинеbandOffsets -
IllegalArgumentException— если какой-либо индекс банка вbandIndicesменьше 0 -
IllegalArgumentException— еслиdataTypeне относится к поддерживаемым типам данных этой модели отсчетов
Подробное описание методов
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
ComponentSampleModel с указанными шириной и высотой. Новая SampleModel будет иметь такое же количество полос, тип данных для хранения, схему чередования и шаг пикселя, как эта SampleModel.- Определено в:
-
createCompatibleSampleModelв классеSampleModel - Параметры:
-
w— ширина результирующейSampleModel -
h— высота результирующейSampleModel - Возвращает:
- новую
ComponentSampleModelуказанного размера - Исключения:
-
IllegalArgumentException— еслиwилиhне больше 0
createSubsetSampleModel
public SampleModel createSubsetSampleModel(int[] bands)
- Определено в:
-
createSubsetSampleModelв классеSampleModel - Параметры:
-
bands— подмножество полос этойComponentSampleModel - Возвращает:
ComponentSampleModel, созданную с подмножеством полос этойComponentSampleModel.
createDataBuffer
public DataBuffer createDataBuffer()
DataBuffer, соответствующий этой ComponentSampleModel. Тип данных, количество банков и размер объекта DataBuffer будут согласованы с этой ComponentSampleModel.- Определено в:
-
createDataBufferв классеSampleModel - Возвращает:
DataBuffer, тип данных, количество банков и размер которого согласованы с этойComponentSampleModel.
getOffset
public int getOffset(int x, int y)
DataBuffer data с помощью ComponentSampleModel csm следующим образом:
data.getElem(csm.getOffset(x, y));
- Параметры:
-
x— координата X пикселя -
y— координата Y пикселя - Возвращает:
- смещение для первой полосы указанного пикселя.
getOffset
public int getOffset(int x, int y, int b)
b можно получить из DataBuffer data с помощью ComponentSampleModel csm следующим образом:
data.getElem(csm.getOffset(x, y, b));
- Параметры:
-
x— координата X указанного пикселя -
y— координата Y указанного пикселя -
b— указанная полоса - Возвращает:
- смещение указанной полосы указанного пикселя.
getSampleSize
public final int[] getSampleSize()
- Определено в:
-
getSampleSizeв классеSampleModel - Возвращает:
- массив, содержащий количество бит на отсчет для всех полос; каждый элемент массива соответствует одной полосе.
getSampleSize
public final int getSampleSize(int band)
- Определено в:
-
getSampleSizeв классеSampleModel - Параметры:
-
band— указанная полоса - Возвращает:
- количество бит на отсчет для указанной полосы.
getBankIndices
public final int[] getBankIndices()
- Возвращает:
- индексы банков для всех полос.
getBandOffsets
public final int[] getBandOffsets()
- Возвращает:
- смещения всех полос.
getScanlineStride
public final int getScanlineStride()
- Возвращает:
- шаг строки этой
ComponentSampleModel.
getPixelStride
public final int getPixelStride()
- Возвращает:
- шаг пикселя этой
ComponentSampleModel.
getNumDataElements
public final int getNumDataElements()
getDataElements(int, int, Object, DataBuffer) и setDataElements(int, int, Object, DataBuffer). Для ComponentSampleModel это значение совпадает с количеством полос.- Определено в:
-
getNumDataElementsв классеSampleModel - Возвращает:
- количество элементов данных, необходимых для передачи пикселя методами
getDataElementsиsetDataElements. - См. также:
getDataElements
public Object getDataElements(int x, int y, Object obj, DataBuffer data)
TransferType. Для ComponentSampleModel этот тип совпадает с типом данных, а отсчеты возвращаются по одному в каждом элементе массива. Как правило, в качестве null следует передавать obj, чтобы Object создавался автоматически и имел правильный примитивный тип данных. В следующем примере показана передача данных одного пикселя из DataBuffer db1, схема хранения которого описывается ComponentSampleModel csm1, в DataBuffer db2, схема хранения которого описывается ComponentSampleModel csm2. Обычно такая передача эффективнее, чем использование getPixel и setPixel.
ComponentSampleModel csm1, csm2;
DataBufferInt db1, db2;
csm2.setDataElements(x, y,
csm1.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— если данные равны null. -
ArrayIndexOutOfBoundsException— если координаты выходят за допустимые границы или если obj слишком мал для хранения результата. - См. также:
getPixel
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона.- Переопределяет:
-
getPixelв классеSampleModel - Параметры:
-
x- координата X местоположения пикселя -
y- координата Y местоположения пикселя -
iArray- если не равен null, возвращает отсчёты в этом массиве -
data- DataBuffer, содержащий данные изображения - Возвращает:
- отсчёты указанного пикселя.
- Выбрасывает:
-
NullPointerException- если данные равны null. -
ArrayIndexOutOfBoundsException- если координаты находятся за пределами допустимого диапазона или массив iArray слишком мал для хранения результата. - См. также:
getPixels
public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона.- Переопределяет:
-
getPixelsв классеSampleModel - Параметры:
-
x- координата X местоположения верхнего левого пикселя -
y- координата Y местоположения верхнего левого пикселя -
w- ширина прямоугольника пикселей -
h- высота прямоугольника пикселей -
iArray- если не равен null, возвращает отсчёты в этом массиве -
data- DataBuffer, содержащий данные изображения - Возвращает:
- отсчёты пикселей в указанной области.
- См. также:
getSample
public int getSample(int x, int y, int b, DataBuffer data)
ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона.- Определён в:
-
getSampleв классеSampleModel - Параметры:
-
x- координата X местоположения пикселя -
y- координата Y местоположения пикселя -
b- канал, отсчёт из которого нужно вернуть -
data-DataBuffer, содержащий данные изображения - Возвращает:
- отсчёт в указанном канале для указанного пикселя
- См. также:
getSampleFloat
public float getSampleFloat(int x, int y, int b, DataBuffer data)
ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона.- Переопределяет:
-
getSampleFloatв классеSampleModel - Параметры:
-
x- координата X местоположения пикселя -
y- координата Y местоположения пикселя -
b- канал, отсчёт из которого нужно вернуть -
data- DataBuffer, содержащий данные изображения - Возвращает:
- значение float, представляющее отсчёт в указанном канале для указанного пикселя.
getSampleDouble
public double getSampleDouble(int x, int y, int b, DataBuffer data)
ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона.- Переопределяет:
-
getSampleDoubleв классеSampleModel - Параметры:
-
x- координата X местоположения пикселя -
y- координата Y местоположения пикселя -
b- канал, отсчёт из которого нужно вернуть -
data- DataBuffer, содержащий данные изображения - Возвращает:
- значение double, представляющее отсчёт в указанном канале для указанного пикселя.
getSamples
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона.- Переопределяет:
-
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 из примитивного массива типа TransferType. Для ComponentSampleModel это совпадает с типом данных, а отсчёты передаются по одному на элемент массива. Следующий код демонстрирует передачу данных одного пикселя из DataBuffer db1, схема хранения которого описана в ComponentSampleModel csm1, в DataBuffer db2, схема хранения которого описана в ComponentSampleModel csm2. Обычно такая передача эффективнее, чем использование getPixel и setPixel.
ComponentSampleModel csm1, csm2;
DataBufferInt db1, db2;
csm2.setDataElements(x, y, csm1.getDataElements(x, y, null, db1),
db2);
Использование getDataElements и setDataElements для передачи между двумя парами DataBuffer/SampleModel допустимо, если объекты SampleModel имеют одинаковое количество каналов, соответствующие каналы имеют одинаковое количество бит на отсчёт, а TransferType совпадают. Выбрасывается ClassCastException, если obj не является примитивным массивом типа TransferType. Может быть выброшено ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона или obj недостаточно велик для хранения данных пикселя.
- Определён в:
-
setDataElementsв классеSampleModel - Параметры:
-
x- координата X местоположения пикселя -
y- координата Y местоположения пикселя -
obj- примитивный массив, содержащий данные пикселя -
data- DataBuffer, содержащий данные изображения - См. также:
setPixel
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
DataBuffer, используя для входных данных массив int с отсчётами. Может быть выброшено ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона.- Переопределяет:
-
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)
ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона.- Переопределяет:
-
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)
DataBuffer, используя в качестве входного значения int. Может быть выброшено ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона.- Определён в:
-
setSampleв классеSampleModel - Параметры:
-
x- координата X местоположения пикселя -
y- координата Y местоположения пикселя -
b- канал, в котором нужно задать отсчёт -
s- входной отсчёт типа int -
data- DataBuffer, содержащий данные изображения - См. также:
setSample
public void setSample(int x, int y, int b, float s, DataBuffer data)
DataBuffer, используя в качестве входного значения float. Может быть выброшено ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона.- Переопределяет:
-
setSampleв классеSampleModel - Параметры:
-
x- координата X местоположения пикселя -
y- координата Y местоположения пикселя -
b- канал, в котором нужно задать отсчёт -
s- входной отсчёт типа float -
data- DataBuffer, содержащий данные изображения - См. также:
setSample
public void setSample(int x, int y, int b, double s, DataBuffer data)
DataBuffer, используя в качестве входного значения double. Может быть выброшено ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона.- Переопределяет:
-
setSampleв классеSampleModel - Параметры:
-
x- координата X местоположения пикселя -
y- координата Y местоположения пикселя -
b- канал, в котором нужно задать отсчёт -
s- входной отсчёт типа double -
data- DataBuffer, содержащий данные изображения - См. также:
setSamples
public void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
ArrayIndexOutOfBoundsException, если координаты находятся за пределами допустимого диапазона.- Переопределяет:
-
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/ComponentSampleModel.html