Spec-Zone.ru › OpenJDK 27

Класс ComponentSampleModel

java.lang.Object
java.awt.image.SampleModel
java.awt.image.ComponentSampleModel
Прямые известные подклассы:
BandedSampleModel, PixelInterleavedSampleModel
public class ComponentSampleModel extends SampleModel
Этот класс представляет данные изображения, хранящиеся таким образом, что каждый образец пикселя занимает один элемент данных в DataBuffer. Он хранит N образцов, составляющих пиксель, в N отдельных элементах массива данных. Разные каналы могут находиться в разных банках DataBuffer. Предоставляются методы доступа, позволяющие напрямую изменять данные изображения. Этот класс поддерживает различные способы чередования, например чередование каналов, чередование строк развертки и чередование пикселей. Шаг пикселя — это количество элементов массива данных между двумя образцами одного канала в одной строке развертки. Шаг строки развертки — это количество элементов массива данных между заданным образцом и соответствующим образцом в том же столбце следующей строки развертки. Смещения каналов обозначают количество элементов массива данных от первого элемента массива данных банка DataBuffer, содержащего каждый канал, до первого образца этого канала. Каналы нумеруются от 0 до N-1. Этот класс может представлять данные изображения, в которых каждый образец является беззнаковым целым числом, хранящимся в 8, 16 или 32 битах (с использованием 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,
См. также:
  • PixelInterleavedSampleModel
  • BandedSampleModel

Краткое описание полей

Модификатор и тип Поле Описание
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
Модификатор и тип Поле Описание
protected int dataType
Тип данных DataBuffer, в котором хранятся данные пикселей.
protected int height
Высота в пикселях области данных изображения, описываемой этой моделью SampleModel.
protected int width
Ширина в пикселях области данных изображения, описываемой этой моделью SampleModel.

Краткое описание конструкторов

Конструктор Описание
ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets)
Создает ComponentSampleModel с указанными параметрами.
ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bankIndices, int[] bandOffsets)
Создает ComponentSampleModel с указанными параметрами.

Краткое описание методов

Модификатор и тип Метод Описание
SampleModel createCompatibleSampleModel(int w, int h)
Создает новый ComponentSampleModel с указанными шириной и высотой.
DataBuffer createDataBuffer()
Создает DataBuffer, соответствующий этому ComponentSampleModel.
SampleModel createSubsetSampleModel(int[] bands)
Создает новый ComponentSampleModel с подмножеством полос этого ComponentSampleModel.
final int[] getBandOffsets()
Возвращает смещения полос для всех полос.
final int[] getBankIndices()
Возвращает индексы банков для всех полос.
Object getDataElements(int x, int y, Object obj, DataBuffer data)
Возвращает данные одного пикселя в примитивном массиве типа TransferType.
final int getNumDataElements()
Возвращает количество элементов данных, необходимых для передачи пикселя с помощью методов getDataElements(int, int, Object, DataBuffer) и setDataElements(int, int, Object, DataBuffer).
int getOffset(int x, int y)
Получает смещение первой полосы пикселя (x,y).
int getOffset(int x, int y, int b)
Получает смещение полосы b пикселя (x,y).
int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
Возвращает отсчеты указанного пикселя в массиве int, по одному отсчету на элемент массива.
int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Возвращает все отсчеты прямоугольной области пикселей в массиве int, по одному отсчету на элемент массива.
final int getPixelStride()
Возвращает шаг пикселя этого ComponentSampleModel.
int getSample(int x, int y, int b, DataBuffer data)
Возвращает отсчет указанной полосы пикселя с координатами (x,y) в виде int.
double getSampleDouble(int x, int y, int b, DataBuffer data)
Возвращает отсчет указанной полосы пикселя с координатами (x,y) в виде double.
float getSampleFloat(int x, int y, int b, DataBuffer data)
Возвращает отсчет указанной полосы пикселя с координатами (x,y) в виде float.
int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
Возвращает отсчеты указанной полосы заданной прямоугольной области пикселей в массиве int, по одному отсчету на элемент массива.
final int[] getSampleSize()
Возвращает количество бит на отсчет для всех полос.
final int getSampleSize(int band)
Возвращает количество бит на отсчет для указанной полосы.
final int getScanlineStride()
Возвращает шаг строки сканирования этого ComponentSampleModel.
void setDataElements(int x, int y, Object obj, DataBuffer data)
Задает данные одного пикселя в указанном DataBuffer из примитивного массива типа TransferType.
void setPixel(int x, int y, int[] iArray, DataBuffer data)
Задает пиксель в DataBuffer, используя для ввода массив отсчетов int.
void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Задает все отсчеты прямоугольной области пикселей из массива int, содержащего по одному отсчету на элемент массива.
void setSample(int x, int y, int b, double s, DataBuffer data)
Задает отсчет указанной полосы пикселя с координатами (x,y) в DataBuffer, используя для ввода значение double.
void setSample(int x, int y, int b, float s, DataBuffer data)
Задает отсчет указанной полосы пикселя с координатами (x,y) в DataBuffer, используя для ввода значение float.
void setSample(int x, int y, int b, int s, DataBuffer data)
Задает отсчет указанной полосы пикселя с координатами (x,y) в DataBuffer, используя для ввода значение int.
void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
Задает отсчеты указанной полосы заданной прямоугольной области пикселей из массива int, содержащего по одному отсчету на элемент массива.

Методы, объявленные в классе SampleModel

getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamples
Модификатор и тип Метод Описание
Object getDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)
Возвращает данные пикселей указанной прямоугольной области в примитивном массиве типа TransferType.
final int getDataType()
Возвращает тип данных DataBuffer, в котором хранятся данные пикселей.
final int getHeight()
Возвращает высоту в пикселях.
final int getNumBands()
Возвращает общее количество полос данных изображения.
double[] getPixel(int x, int y, double[] dArray, DataBuffer data)
Возвращает отсчеты указанного пикселя в массиве double.
float[] getPixel(int x, int y, float[] fArray, DataBuffer data)
Возвращает отсчеты указанного пикселя в массиве float.
double[] getPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data)
Возвращает все отсчеты прямоугольной области пикселей в массиве double, по одному отсчету на элемент массива.
float[] getPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data)
Возвращает все отсчеты прямоугольной области пикселей в массиве float, по одному отсчету на элемент массива.
double[] getSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data)
Возвращает отсчеты указанной полосы заданной прямоугольной области пикселей в массиве double, по одному отсчету на элемент массива.
float[] getSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data)
Возвращает отсчеты указанной полосы заданной прямоугольной области пикселей в массиве float, по одному отсчету на элемент массива.
int getTransferType()
Возвращает TransferType, используемый для передачи пикселей с помощью методов getDataElements и setDataElements.
final int getWidth()
Возвращает ширину в пикселях.
void setDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)
Задает данные прямоугольной области пикселей в указанном DataBuffer из примитивного массива типа TransferType.
void setPixel(int x, int y, double[] dArray, DataBuffer data)
Задает пиксель в DataBuffer, используя для ввода массив отсчетов double.
void setPixel(int x, int y, float[] fArray, DataBuffer data)
Задает пиксель в DataBuffer, используя для ввода массив отсчетов float.
void setPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data)
Задает все отсчеты прямоугольной области пикселей из массива double, содержащего по одному отсчету на элемент массива.
void setPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data)
Задает все отсчеты прямоугольной области пикселей из массива float, содержащего по одному отсчету на элемент массива.
void setSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data)
Задает отсчеты указанной полосы заданной прямоугольной области пикселей из массива double, содержащего по одному отсчету на элемент массива.
void setSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data)
Задает отсчеты указанной полосы заданной прямоугольной области пикселей из массива float, содержащего по одному отсчету на элемент массива.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание полей

bandOffsets

protected int[] bandOffsets
Смещения для всех полос в элементах массива данных.

bankIndices

protected int[] bankIndices
Индекс для каждого банка, в котором хранятся данные полосы изображения.

numBands

protected int numBands
Количество полос в этом ComponentSampleModel.

numBanks

protected int numBanks
Количество банков в этом ComponentSampleModel.

scanlineStride

protected int scanlineStride
Шаг строки (в элементах массива данных) области данных изображения, описанной этим ComponentSampleModel.

pixelStride

protected int pixelStride
Шаг пикселя (в элементах массива данных) области данных изображения, описанной этим ComponentSampleModel.

Подробное описание конструкторов

ComponentSampleModel

public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets)
Создает ComponentSampleModel с указанными параметрами. Количество полос определяется длиной массива bandOffsets. Все полосы будут храниться в первом банке DataBuffer.
Параметры:
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)
Создает ComponentSampleModel с указанными параметрами. Количество полос определяется длиной массива bandOffsets. Разные полосы могут храниться в разных банках DataBuffer.
Параметры:
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)
Создает новый ComponentSampleModel с подмножеством полос этой модели ComponentSampleModel. Новую модель ComponentSampleModel можно использовать с любым DataBuffer, с которым можно использовать существующую модель ComponentSampleModel. Новая комбинация ComponentSampleModel/DataBuffer будет представлять изображение с подмножеством полос исходной комбинации ComponentSampleModel/DataBuffer.
Переопределяет:
createSubsetSampleModel в классе SampleModel
Параметры:
bands — подмножество полос этой ComponentSampleModel
Возвращает:
ComponentSampleModel, созданную с подмножеством полос этой ComponentSampleModel.
Исключения:
NullPointerException — если bands равно null
IllegalArgumentException — если количество полос не больше 0
RasterFormatException — если количество полос больше количества банков в этой модели отсчетов.
ArrayIndexOutOfBoundsException — если какой-либо индекс полосы выходит за допустимые границы

createDataBuffer

public DataBuffer createDataBuffer()
Создает DataBuffer, соответствующий этой ComponentSampleModel. Тип данных, количество банков и размер объекта DataBuffer должны соответствовать этой ComponentSampleModel.
Переопределяет:
createDataBuffer в классе SampleModel
Возвращает:
DataBuffer, тип данных, количество банков и размер которого соответствуют этой ComponentSampleModel.

getOffset

public int getOffset(int x, int y)
Возвращает смещение для первой полосы пикселя (x,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 пикселя (x,y). Отсчет полосы 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)
Возвращает количество битов на отсчет для указанной полосы.

Поскольку все полосы ComponentSampleModel имеют одинаковый размер, этот метод игнорирует параметр band и возвращает размер первой (нулевой) полосы.

Переопределяет:
getSampleSize в классе SampleModel
Параметры:
band — указанная полоса (игнорируется)
Возвращает:
количество битов на отсчет для указанной полосы.

getBankIndices

public final int[] getBankIndices()
Возвращает индексы банков для всех полос.
Возвращает:
индексы банков для всех полос.

getBandOffsets

public final int[] getBandOffsets()
Возвращает смещения всех полос.
Возвращает:
смещения всех полос.

getScanlineStride

public final int getScanlineStride()
Возвращает шаг строки этой модели ComponentSampleModel.
Возвращает:
шаг строки этой ComponentSampleModel.

getPixelStride

public final int getPixelStride()
Возвращает шаг пикселя этой модели ComponentSampleModel.
Возвращает:
шаг пикселя этой ComponentSampleModel.

getNumDataElements

public final int getNumDataElements()
Возвращает количество элементов данных, необходимых для передачи пикселя с помощью методов getDataElements(int, int, Object, DataBuffer) и setDataElements(int, int, Object, DataBuffer). Для ComponentSampleModel это значение совпадает с количеством полос.
Переопределяет:
getNumDataElements в классе SampleModel
Возвращает:
количество элементов данных, необходимых для передачи пикселя с помощью методов getDataElements и setDataElements.
См. также:
  • SampleModel.getNumDataElements()
  • SampleModel.getNumBands()

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 — если data является null.
ArrayIndexOutOfBoundsException — если координаты выходят за допустимые границы или если obj слишком мал для хранения результата.
См. также:
  • setDataElements(int, int, Object, DataBuffer)

getPixel

public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
Возвращает отсчёты указанного пикселя в массиве int, по одному отсчёту на элемент массива. Если координаты выходят за допустимые границы, может быть выброшено ArrayIndexOutOfBoundsException.
Переопределено:
getPixel в классе SampleModel
Параметры:
x — координата X местоположения пикселя
y — координата Y местоположения пикселя
iArray — если не равно null, отсчёты возвращаются в этот массив
data — DataBuffer, содержащий данные изображения
Возвращает:
отсчёты указанного пикселя.
Вызывает:
NullPointerException — если data является null.
ArrayIndexOutOfBoundsException — если координаты выходят за допустимые границы или если iArray слишком мал для хранения результата.
См. также:
  • SampleModel.setPixel(int, int, int[], DataBuffer)

getPixels

public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Возвращает все отсчёты прямоугольной области пикселей в массиве int, по одному отсчёту на элемент массива. Если координаты выходят за допустимые границы, может быть выброшено ArrayIndexOutOfBoundsException.
Переопределено:
getPixels в классе SampleModel
Параметры:
x — координата X местоположения верхнего левого пикселя.
y — координата Y местоположения верхнего левого пикселя.
w — ширина прямоугольной области пикселей.
h — высота прямоугольной области пикселей.
iArray — если не равно null, отсчёты возвращаются в этот массив.
data — DataBuffer, содержащий данные изображения.
Возвращает:
отсчёты указанной области пикселей.
Вызывает:
NullPointerException — если data является null.
ArrayIndexOutOfBoundsException — если координаты выходят за допустимые границы, w или h отрицательно либо iArray слишком мал для хранения результата.
См. также:
  • SampleModel.setPixels(int, int, int, int, int[], DataBuffer)

getSample

public int getSample(int x, int y, int b, DataBuffer data)
Возвращает отсчёт указанной полосы для пикселя с координатами (x,y) в виде значения int. Если координаты выходят за допустимые границы, может быть выброшено ArrayIndexOutOfBoundsException.
Определено в:
getSample в классе SampleModel
Параметры:
x — координата X местоположения пикселя.
y — координата Y местоположения пикселя.
b — возвращаемая полоса.
data — DataBuffer, содержащий данные изображения.
Возвращает:
отсчёт указанной полосы указанного пикселя.
Вызывает:
NullPointerException — если data является null.
ArrayIndexOutOfBoundsException — если координаты или индекс полосы выходят за допустимые границы.
См. также:
  • SampleModel.setSample(int, int, int, int, DataBuffer)

getSampleFloat

public float getSampleFloat(int x, int y, int b, DataBuffer data)
Возвращает отсчёт указанной полосы для пикселя с координатами (x,y) в виде значения float. Если координаты выходят за допустимые границы, может быть выброшено ArrayIndexOutOfBoundsException.
Переопределено:
getSampleFloat в классе SampleModel
Параметры:
x — координата X местоположения пикселя.
y — координата Y местоположения пикселя.
b — возвращаемая полоса.
data — DataBuffer, содержащий данные изображения.
Возвращает:
отсчёт указанной полосы указанного пикселя.
Вызывает:
NullPointerException — если data является null.
ArrayIndexOutOfBoundsException — если координаты или индекс полосы выходят за допустимые границы.

getSampleDouble

public double getSampleDouble(int x, int y, int b, DataBuffer data)
Возвращает отсчёт указанной полосы для пикселя с координатами (x,y) в виде значения double. Если координаты выходят за допустимые границы, может быть выброшено ArrayIndexOutOfBoundsException.
Переопределено:
getSampleDouble в классе SampleModel
Параметры:
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)
Возвращает отсчёты указанной полосы для заданной прямоугольной области пикселей в массиве int, по одному отсчёту на элемент массива. Если координаты выходят за допустимые границы, может быть выброшено ArrayIndexOutOfBoundsException.
Переопределено:
getSamples в классе SampleModel
Параметры:
x — координата X местоположения верхнего левого пикселя.
y — координата Y местоположения верхнего левого пикселя.
w — ширина прямоугольной области пикселей.
h — высота прямоугольной области пикселей.
b — возвращаемая полоса.
iArray — если не равно null, отсчёты возвращаются в этот массив.
data — DataBuffer, содержащий данные изображения.
Возвращает:
отсчёты указанной полосы указанной области пикселей.
Вызывает:
NullPointerException — если data является null.
ArrayIndexOutOfBoundsException — если координаты или индекс полосы выходят за допустимые границы, w или h отрицательно либо iArray слишком мал для хранения результата.
См. также:
  • SampleModel.setSamples(int, int, int, int, int, int[], 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, содержащий данные изображения
Вызывает:
NullPointerException — если obj или data является null.
ArrayIndexOutOfBoundsException — если координаты выходят за допустимые границы или если obj слишком мал для хранения входных данных.
См. также:
  • getDataElements(int, int, Object, 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, содержащий данные изображения.
Вызывает:
NullPointerException — если iArray или data является null.
ArrayIndexOutOfBoundsException — если координаты выходят за допустимые границы или если iArray слишком мал для хранения входных данных.
См. также:
  • SampleModel.getPixel(int, int, int[], DataBuffer)

setPixels

public void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Задает все отсчеты для прямоугольника пикселей из массива int, содержащего по одному отсчету в каждом элементе массива. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты выходят за допустимые границы.
Переопределяет:
setPixels в классе SampleModel
Параметры:
x - координата X верхнего левого пикселя.
y - координата Y верхнего левого пикселя.
w - ширина прямоугольника пикселей.
h - высота прямоугольника пикселей.
iArray - входные отсчеты в массиве int.
data - DataBuffer, содержащий данные изображения.
Выбрасывает:
NullPointerException - если iArray или data имеет значение null.
ArrayIndexOutOfBoundsException - если координаты выходят за допустимые границы, либо w или h имеет отрицательное значение, либо iArray слишком мал для размещения входных данных.
См. также:
  • SampleModel.getPixels(int, int, int, int, int[], DataBuffer)

setSample

public void setSample(int x, int y, int b, int s, DataBuffer data)
Задает отсчет в указанной полосе для пикселя, расположенного в точке (x,y) в DataBuffer, используя для ввода значение типа int. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты выходят за допустимые границы.
Определено в:
setSample в классе SampleModel
Параметры:
x - координата X пикселя.
y - координата Y пикселя.
b - полоса, для которой задается значение.
s - входной отсчет типа int.
data - DataBuffer, содержащий данные изображения.
Выбрасывает:
NullPointerException - если data имеет значение null.
ArrayIndexOutOfBoundsException - если координаты или индекс полосы выходят за допустимые границы.
См. также:
  • SampleModel.getSample(int, int, int, DataBuffer)

setSample

public void setSample(int x, int y, int b, float s, DataBuffer data)
Задает отсчет в указанной полосе для пикселя, расположенного в точке (x,y) в DataBuffer, используя для ввода значение типа float. Реализация этого метода по умолчанию приводит входной отсчет типа float к типу int, а затем вызывает метод setSample(int, int, int, DataBuffer), используя это значение int. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты выходят за допустимые границы.
Переопределяет:
setSample в классе SampleModel
Параметры:
x - координата X пикселя.
y - координата Y пикселя.
b - полоса, для которой задается значение.
s - входной отсчет типа float.
data - DataBuffer, содержащий данные изображения.
Выбрасывает:
NullPointerException - если data имеет значение null.
ArrayIndexOutOfBoundsException - если координаты или индекс полосы выходят за допустимые границы.
См. также:
  • SampleModel.getSample(int, int, int, DataBuffer)

setSample

public void setSample(int x, int y, int b, double s, DataBuffer data)
Задает отсчет в указанной полосе для пикселя, расположенного в точке (x,y) в DataBuffer, используя для ввода значение типа double. Реализация этого метода по умолчанию приводит входной отсчет типа double к типу int, а затем вызывает метод setSample(int, int, int, DataBuffer), используя это значение int. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты выходят за допустимые границы.
Переопределяет:
setSample в классе SampleModel
Параметры:
x - координата X пикселя.
y - координата Y пикселя.
b - полоса, для которой задается значение.
s - входной отсчет типа double.
data - DataBuffer, содержащий данные изображения.
Выбрасывает:
NullPointerException - если data имеет значение null.
ArrayIndexOutOfBoundsException - если координаты или индекс полосы выходят за допустимые границы.
См. также:
  • SampleModel.getSample(int, int, int, DataBuffer)

setSamples

public void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
Задает отсчеты в указанной полосе для заданного прямоугольника пикселей из массива int, содержащего по одному отсчету в каждом элементе массива. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты выходят за допустимые границы.
Переопределяет:
setSamples в классе SampleModel
Параметры:
x - координата X верхнего левого пикселя.
y - координата Y верхнего левого пикселя.
w - ширина прямоугольника пикселей.
h - высота прямоугольника пикселей.
b - полоса, для которой задается значение.
iArray - входные отсчеты в массиве int.
data - DataBuffer, содержащий данные изображения.
Выбрасывает:
NullPointerException - если iArray или data имеет значение null.
ArrayIndexOutOfBoundsException - если координаты или индекс полосы выходят за допустимые границы, либо w или h имеет отрицательное значение, либо iArray слишком мал для размещения входных данных.
См. также:
  • SampleModel.getSamples(int, int, int, int, int, int[], DataBuffer)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры основных понятий, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API