Класс 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- подмножество полос из этой модели образцов - Возвращает:
- модель образцов, созданную с подмножеством полос из этой модели образцов.
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- если данные равны 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, содержащий данные изображения - Возвращает:
- значение с плавающей точкой, представляющее образец в указанной полосе для указанного пикселя.
getSampleDouble
public double getSampleDouble(int x, int y, int b, DataBuffer data)
ArrayIndexOutOfBoundsException, если координаты находятся вне границ.- Переопределяет:
-
getSampleDoubleв классеSampleModel - Параметры:
-
x- Координата X расположения пикселя -
y- Координата Y расположения пикселя -
b- Полоса для возврата -
data- DataBuffer, содержащий данные изображения - Возвращает:
- значение двойной точности, представляющее образец в указанной полосе для указанного пикселя.
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, 2021, 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/17/docs/api/java.desktop/java/awt/image/ComponentSampleModel.html