Класс 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. |
Поля, объявленные в классе java.awt.image.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, содержащего по одному образцу на элемент массива данных. |
Методы, объявленные в классе java.awt.image.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)
- Определено в:
-
createCompatibleSampleModelв классеSampleModel - Параметры:
-
w- ширина результирующего ComponentSampleModel -
h- высота результирующего ComponentSampleModel - Возвращает:
- новый ComponentSampleModel с указанным размером
- Исключения:
-
IllegalArgumentException- еслиwилиhне больше 0
createSubsetSampleModel
public SampleModel createSubsetSampleModel(int[] bands)
- Определено в:
-
createSubsetSampleModelв классеSampleModel - Параметры:
-
bands- подмножество полос из этого ComponentSampleModel - Возвращает:
- ComponentSampleModel, созданный с подмножеством полос из этого ComponentSampleModel.
createDataBuffer
public DataBuffer createDataBuffer()
- Определено в:
-
createDataBufferв классеSampleModel - Возвращает:
- DataBuffer, тип данных, количество банков и размер которого согласованы с этим ComponentSampleModel.
getOffset
public int getOffset(int x, int y)
- Параметры:
-
x- положение X пикселя -
y- положение Y пикселя - Возвращает:
- смещение для первой полосы указанного пикселя.
getOffset
public int getOffset(int x, int y, int b)
b может быть извлечена из DataBuffer с указанным смещением.- Параметры:
-
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, это то же самое, что и тип данных, а образцы возвращаются по одному на элемент массива. Как правило, obj следует передавать как null, чтобы 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/image/ComponentSampleModel.html