Класс 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- ширина получаемой модели образцов -
h- высота получаемой модели образцов - Возвращает:
- новую модель образцов с заданным размером
- Исключения:
-
IllegalArgumentException- еслиwилиhне больше 0
createSubsetSampleModel
public SampleModel createSubsetSampleModel(int[] bands)
- Унаследовано от:
-
createSubsetSampleModelв классеSampleModel - Параметры:
-
bands- подмножество полос из этой модели - Возвращает:
- модель ComponentSampleModel, созданную с подмножеством полос из этой модели.
createDataBuffer
public DataBuffer createDataBuffer()
- Унаследовано от:
-
createDataBufferв классеSampleModel - Возвращает:
- DataBuffer, тип данных, количество банков и размер которого согласованы с этой моделью.
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- если data равно 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 недостаточно велик для хранения данных пикселя.
- Specified by:
-
setDataElementsin classSampleModel - Parameters:
-
x- координата X расположения пикселя -
y- координата Y расположения пикселя -
obj- примитивный массив, содержащий данные пикселя -
data- DataBuffer, содержащий данные изображения - See Also:
setPixel
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
DataBuffer, используя массив int для входных образцов. Может быть брошено исключение ArrayIndexOutOfBoundsException, если координаты не находятся в пределах границ.- Overrides:
-
setPixelin classSampleModel - 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)
ArrayIndexOutOfBoundsException, если координаты не находятся в пределах границ.- Overrides:
-
setPixelsin classSampleModel - 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)
DataBuffer используя int для ввода. Может быть брошено исключение ArrayIndexOutOfBoundsException, если координаты не находятся в пределах границ.- Specified by:
-
setSamplein classSampleModel - Parameters:
-
x- Координата X пикселя -
y- Координата Y пикселя -
b- полоса для установки -
s- входной образец как int -
data- DataBuffer, содержащий данные изображения - See Also:
setSample
public void setSample(int x, int y, int b, float s, DataBuffer data)
DataBuffer, используя float в качестве входных данных. Может быть брошено исключение ArrayIndexOutOfBoundsException, если координаты не находятся в границах.- Overrides:
-
setSamplein classSampleModel - Parameters:
-
x- Координата X пикселя -
y- Координата Y пикселя -
b- Номер полосы -
s- Входной образец как float -
data- DataBuffer, содержащий данные изображения - See Also:
setSample
public void setSample(int x, int y, int b, double s, DataBuffer data)
DataBuffer, используя double в качестве входных данных. Может быть брошено исключение ArrayIndexOutOfBoundsException, если координаты не находятся в границах.- Overrides:
-
setSamplein classSampleModel - Parameters:
-
x- Координата X пикселя -
y- Координата Y пикселя -
b- Номер полосы -
s- Входной образец как double -
data- DataBuffer, содержащий данные изображения - See Also:
setSamples
public void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
ArrayIndexOutOfBoundsException, если координаты не находятся в пределах границ.- Overrides:
-
setSamplesin classSampleModel - 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/ComponentSampleModel.html