Spec-Zone.ru › OpenJDK 8

Класс BandedSampleModel

  • java.lang.Object
    • java.awt.image.SampleModel
      • java.awt.image.ComponentSampleModel
        • java.awt.image.BandedSampleModel

public final class BandedSampleModel
extends ComponentSampleModel

Этот класс представляет данные изображения, которые хранятся в интерлинированном формате, и для каждого пикселя каждый образец занимает один элемент данных в DataBuffer. Он является подклассом ComponentSampleModel, но предоставляет более эффективную реализацию для доступа к данным интерлинированного изображения, чем ComponentSampleModel. Этот класс обычно используется при работе с изображениями, которые хранят образцы данных для каждого канала в разных банках DataBuffer. Предоставляются методы-обработчики, чтобы можно было напрямую манипулировать данными изображения. Шаг пикселя — это количество элементов массива данных между двумя образцами одного и того же канала на одной и той же строке сканирования. Шаг пикселя для BandedSampleModel равен единице. Шаг строки сканирования — это количество элементов массива данных между заданным образцом и соответствующим образцом в той же колонке следующей строки сканирования. Смещения каналов обозначают количество элементов массива данных от первого элемента массива данных банка DataBuffer, содержащего каждый канал, до первого образца канала. Канал нумеруются от 0 до N-1. Индексы банка обозначают соответствие между банком буфера данных и каналом данных изображения. Этот класс поддерживает типы данных TYPE_BYTE, TYPE_USHORT, TYPE_SHORT, TYPE_INT, TYPE_FLOAT и TYPE_DOUBLE.

Поля

Поля, унаследованные от класса java.awt.image.ComponentSampleModel

bandOffsets, bankIndices, numBands, numBanks, pixelStride, scanlineStride

Поля, унаследованные от класса java.awt.image.SampleModel

dataType, height, width

Конструкторы

Конструктор и описание
BandedSampleModel(int dataType, int w, int h, int numBands)

Конструирует BandedSampleModel с указанными параметрами.

BandedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets)

Конструирует BandedSampleModel с указанными параметрами.

Методы

Модификатор и тип Метод и описание
SampleModel createCompatibleSampleModel(int w, int h)

Создаёт новый BandedSampleModel с указанной шириной и высотой.

DataBuffer createDataBuffer()

Создаёт DataBuffer, соответствующий этому BandedSampleModel. Тип данных, количество банков и размер DataBuffer будут согласованы с этим BandedSampleModel.

SampleModel createSubsetSampleModel(int[] bands)

Создаёт новый BandedSampleModel с подмножеством каналов этого BandedSampleModel.

Object getDataElements(int x, int y, Object obj, DataBuffer data)

Возвращает данные для одного пикселя в примитивном массиве типа TransferType.

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, по одному образцу на элемент массива данных.

int getSample(int x, int y, int b, DataBuffer data)

Возвращает образец в указанном канале для пикселя, расположенного по координатам (x,y), как целое число.

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, по одному образцу на элемент массива данных.

int hashCode()

Возвращает значение хэш-кода для объекта.

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, содержащего по одному образцу на элемент массива данных.

Методы, унаследованные от класса java.awt.image.ComponentSampleModel

equals, getBandOffsets, getBankIndices, getNumDataElements, getOffset, getOffset, getPixelStride, getSampleSize, getSampleSize, getScanlineStride

Методы, унаследованные от класса java.awt.image.SampleModel

getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamples

Методы, унаследованные от класса java.lang.Object

clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

Конструкторы

BandedSampleModel

public BandedSampleModel(int dataType,
                         int w,
                         int h,
                         int numBands)

Создаёт BandedSampleModel с указанными параметрами. Шаг по пикселям будет равен одному элементу данных. Шаг по строке сканирования будет таким же, как ширина. Каждый канал будет храниться в отдельном банке, а все смещения каналов будут равны нулю.

Параметры:
dataType - Тип данных для хранения образцов.
w - Ширина (в пикселях) области данных изображения.
h - Высота (в пикселях) области данных изображения.
numBands - Количество каналов для данных изображения.
Исключения:
IllegalArgumentException - если dataType не является одним из поддерживаемых типов данных

BandedSampleModel

public BandedSampleModel(int dataType,
                         int w,
                         int h,
                         int scanlineStride,
                         int[] bankIndices,
                         int[] bandOffsets)

Создаёт BandedSampleModel с указанными параметрами. Количество каналов будет определено из длин массивов bandOffsets и bankIndices, которые должны быть равны. Шаг по пикселям будет равен одному элементу данных.

Параметры:
dataType - Тип данных для хранения образцов.
w - Ширина (в пикселях) области данных изображения.
h - Высота (в пикселях) области данных изображения.
scanlineStride - Шаг строки данных изображения.
bankIndices - Индекс банка для каждого канала.
bandOffsets - Смещение канала для каждого канала.
Исключения:
IllegalArgumentException - если dataType не является одним из поддерживаемых типов данных

Методы

createCompatibleSampleModel

public SampleModel createCompatibleSampleModel(int w,
                                               int h)

Создаёт новый BandedSampleModel с заданной шириной и высотой. Новый BandedSampleModel будет иметь то же количество каналов, тип данных хранения и индексы банков, что и этот BandedSampleModel. Смещения каналов будут сжаты таким образом, что смещение между каналами будет равно w*pixelStride, а минимальное значение всех смещений каналов будет равно нулю.

Переопределяет:
createCompatibleSampleModel в классе ComponentSampleModel
Параметры:
w - ширина получаемого BandedSampleModel
h - высота получаемого BandedSampleModel
Возвращает:
новый BandedSampleModel с заданной шириной и высотой.
Исключения:
IllegalArgumentException - если w или h равно либо Integer.MAX_VALUE или Integer.MIN_VALUE
IllegalArgumentException - если dataType не является одним из поддерживаемых типов данных

createSubsetSampleModel

public SampleModel createSubsetSampleModel(int[] bands)

Создаёт новый BandedSampleModel с подмножеством каналов этого BandedSampleModel. Новый BandedSampleModel может быть использован с любым DataBuffer, с которым может быть использован существующий BandedSampleModel. Новая комбинация BandedSampleModel/DataBuffer будет представлять изображение с подмножеством каналов исходной комбинации BandedSampleModel/DataBuffer.

Переопределяет:
createSubsetSampleModel в классе ComponentSampleModel
Параметры:
bands - подмножество каналов из этого ComponentSampleModel
Возвращает:
BandedSampleModel, созданный с подмножеством каналов из этого ComponentSampleModel.
Исключения:
RasterFormatException - если количество каналов больше, чем количество банков в этом образце модели.
IllegalArgumentException - если dataType не является одним из поддерживаемых типов данных

createDataBuffer

public DataBuffer createDataBuffer()

Создаёт DataBuffer, соответствующий этому BandedSampleModel. Тип данных, количество банков и размер DataBuffer будут согласованы с этим BandedSampleModel.

Переопределяет:
createDataBuffer в классе ComponentSampleModel
Возвращает:
DataBuffer, тип данных, количество банков и размер которого согласованы с этим ComponentSampleModel.
Исключения:
IllegalArgumentException - если dataType не является одним из поддерживаемых типов.

getDataElements

public Object getDataElements(int x,
                              int y,
                              Object obj,
                              DataBuffer data)

Возвращает данные для одного пикселя в примитивном массиве типа TransferType. Для BandedSampleModel это будет таким же типом данных, и образцы будут возвращены по одному на элемент массива. В общем случае, obj следует передавать как null, чтобы объект был создан автоматически и был правильного примитивного типа данных.

Следующий код иллюстрирует передачу данных для одного пикселя из DataBuffer db1, структура хранения которого описывается BandedSampleModel bsm1, в DataBuffer db2, структура хранения которого описывается BandedSampleModel bsm2. Передача, как правило, будет более эффективной, чем использование getPixel/setPixel.

BandedSampleModel bsm1, bsm2;
       DataBufferInt db1, db2;
       bsm2.setDataElements(x, y, bsm1.getDataElements(x, y, null, db1),
                            db2);
Использование getDataElements/setDataElements для передачи между двумя парами DataBuffer/SampleModel допустимо, если SampleModel имеют одинаковое количество каналов, соответствующие каналы имеют одинаковое количество бит на образец, и TransferType одинаковы.

Если obj не равен null, он должен быть примитивным массивом типа TransferType. В противном случае будет брошено исключение ClassCastException. Может быть брошено исключение ArrayIndexOutOfBoundsException, если координаты не находятся в пределах, или если obj не равен null и не достаточно большой для хранения данных пикселя.

Переопределяет:
getDataElements в классе ComponentSampleModel
Параметры:
x - Координата X местоположения пикселя
y - Координата Y местоположения пикселя
obj - Если не null, примитивный массив, в котором будут возвращены данные пикселя.
data - DataBuffer, содержащий данные изображения.
Возвращает:
данные для указанного пикселя.
См. также:
setDataElements(int, int, Object, DataBuffer)

getPixel

public int[] getPixel(int x,
                      int y,
                      int[] iArray,
                      DataBuffer data)

Возвращает все образцы для указанного пикселя в массиве int. ArrayIndexOutOfBoundsException может быть брошен, если координаты не находятся в пределах.

Переопределяет:
getPixel в классе ComponentSampleModel
Параметры:
x - Координата X местоположения пикселя
y - Координата Y местоположения пикселя
iArray - Если не null, возвращает образцы в этом массиве
data - DataBuffer, содержащий данные изображения
Возвращает:
образцы для указанного пикселя.
См. также:
setPixel(int, int, int[], DataBuffer)

getPixels

public int[] getPixels(int x,
                       int y,
                       int w,
                       int h,
                       int[] iArray,
                       DataBuffer data)

Возвращает все образцы для заданного прямоугольника пикселей в массиве int, по одному образцу на элемент массива данных. ArrayIndexOutOfBoundsException может быть брошен, если координаты не находятся в пределах.

Переопределяет:
getPixels в классе ComponentSampleModel
Параметры:
x - Координата X верхнего левого местоположения пикселя
y - Координата Y верхнего левого местоположения пикселя
w - Ширина прямоугольника пикселей
h - Высота прямоугольника пикселей
iArray - Если не null, возвращает образцы в этом массиве
data - DataBuffer, содержащий данные изображения
Возвращает:
образцы для пикселей в указанной области.
См. также:
setPixels(int, int, int, int, int[], DataBuffer)

getSample

public int getSample(int x,
                     int y,
                     int b,
                     DataBuffer data)

Возвращает образчик в указанном канале для пикселя, расположенного по координатам (x, y), как int. ArrayIndexOutOfBoundsException может быть брошен, если координаты не находятся в пределах.

Переопределяет:
getSample в классе ComponentSampleModel
Параметры:
x - Координата X местоположения пикселя
y - Координата Y местоположения пикселя
b - Канал для возврата
data - DataBuffer, содержащий данные изображения
Возвращает:
образец в указанном канале для указанного пикселя.
См. также:
setSample(int, int, int, int, DataBuffer)

getSampleFloat

public float getSampleFloat(int x,
                            int y,
                            int b,
                            DataBuffer data)

Возвращает образец в указанном канале для пикселя, расположенного по координатам (x,y) как float. ArrayIndexOutOfBoundsException может быть брошен, если координаты не находятся в пределах.

Переопределяет:
getSampleFloat в классе ComponentSampleModel
Параметры:
x - Координата X местоположения пикселя
y - Координата Y местоположения пикселя
b - Канал для возврата
data - DataBuffer, содержащий данные изображения
Возвращает:
значение float, представляющее образец в указанном канале для указанного пикселя.

getSampleDouble

public double getSampleDouble(int x,
                              int y,
                              int b,
                              DataBuffer data)

Возвращает образец в указанном канале для пикселя, расположенного по координатам (x, y) как double. ArrayIndexOutOfBoundsException может быть брошен, если координаты не находятся в пределах.

Переопределяет:
getSampleDouble в классе ComponentSampleModel
Параметры:
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)

Возвращает образцы в указанном канале для заданного прямоугольника пикселей в массиве int, по одному образцу на элемент массива данных. ArrayIndexOutOfBoundsException может быть брошен, если координаты не находятся в пределах.

Overrides:
getSamples в классе ComponentSampleModel
Parameters:
x - Координата X левого верхнего пикселя
y - Координата Y левого верхнего пикселя
w - Ширина прямоугольника пикселей
h - Высота прямоугольника пикселей
b - Полоса для возврата
iArray - Если не null, возвращает выборки в этом массиве
data - DataBuffer, содержащий данные изображения
Returns:
выборки в указанной полосе для пикселей в указанной области.
See Also:
setSamples(int, int, int, int, int, int[], DataBuffer)

setDataElements

public void setDataElements(int x,
                            int y,
                            Object obj,
                            DataBuffer data)

Устанавливает данные для одного пикселя в указанном DataBuffer из примитивного массива типа TransferType. Для BandedSampleModel это будет тот же тип данных, и выборки передаются по одному на элемент массива.

Следующий код иллюстрирует передачу данных для одного пикселя из DataBuffer db1, расположение хранения которого описано в BandedSampleModel bsm1, в DataBuffer db2, расположение хранения которого описано в BandedSampleModel bsm2. Передача, как правило, будет более эффективной, чем использование getPixel/setPixel.

BandedSampleModel bsm1, bsm2;
       DataBufferInt db1, db2;
       bsm2.setDataElements(x, y, bsm1.getDataElements(x, y, null, db1),
                            db2);
Использование getDataElements/setDataElements для передачи между двумя парами DataBuffer/SampleModel допустимо, если SampleModels имеют одинаковое количество полос, соответствующие полосы имеют одинаковое количество битов на выборку, и TransferType одинаковы.

obj должен быть примитивным массивом типа TransferType. В противном случае выбрасывается ClassCastException. Может быть выброшено ArrayIndexOutOfBoundsException, если координаты находятся за пределами границ, или если obj недостаточно велик для хранения данных пикселя.

Overrides:
setDataElements в классе ComponentSampleModel
Parameters:
x - Координата X пикселя
y - Координата Y пикселя
obj - Если не null, возвращает примитивный массив в этом объекте
data - DataBuffer, содержащий данные изображения
See Also:
getDataElements(int, int, Object, DataBuffer)

setPixel

public void setPixel(int x,
                     int y,
                     int[] iArray,
                     DataBuffer data)

Устанавливает пиксель в DataBuffer, используя целочисленный массив выборок для ввода. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты находятся за пределами границ.

Overrides:
setPixel в классе ComponentSampleModel
Parameters:
x - Координата X пикселя
y - Координата Y пикселя
iArray - Входные выборки в целочисленном массиве
data - DataBuffer, содержащий данные изображения
See Also:
getPixel(int, int, int[], DataBuffer)

setPixels

public void setPixels(int x,
                      int y,
                      int w,
                      int h,
                      int[] iArray,
                      DataBuffer data)

Устанавливает все выборки для прямоугольника пикселей из целочисленного массива, содержащего по одной выборке на элемент массива. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты находятся за пределами границ.

Overrides:
setPixels в классе ComponentSampleModel
Parameters:
x - Координата X левого верхнего пикселя
y - Координата Y левого верхнего пикселя
w - Ширина прямоугольника пикселей
h - Высота прямоугольника пикселей
iArray - Входные выборки в целочисленном массиве
data - DataBuffer, содержащий данные изображения
See Also:
getPixels(int, int, int, int, int[], DataBuffer)

setSample

public void setSample(int x,
                      int y,
                      int b,
                      int s,
                      DataBuffer data)

Устанавливает выборку в указанной полосе для пикселя, расположенного по координатам (x,y) в DataBuffer, используя целое число для ввода. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты находятся за пределами границ.

Overrides:
setSample в классе ComponentSampleModel
Parameters:
x - Координата X пикселя
y - Координата Y пикселя
b - Номер полосы
s - Входная выборка как целое число
data - DataBuffer, содержащий данные изображения
See Also:
getSample(int, int, int, DataBuffer)

setSample

public void setSample(int x,
                      int y,
                      int b,
                      float s,
                      DataBuffer data)

Устанавливает выборку в указанной полосе для пикселя, расположенного по координатам (x,y) в DataBuffer, используя число с плавающей точкой для ввода. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты находятся за пределами границ.

Overrides:
setSample в классе ComponentSampleModel
Parameters:
x - Координата X пикселя
y - Координата Y пикселя
b - Номер полосы
s - Входная выборка как число с плавающей точкой
data - DataBuffer, содержащий данные изображения
See Also:
getSample(int, int, int, DataBuffer)

setSample

public void setSample(int x,
                      int y,
                      int b,
                      double s,
                      DataBuffer data)

Устанавливает выборку в указанной полосе для пикселя, расположенного по координатам (x,y) в DataBuffer, используя число с двойной точностью для ввода. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты находятся за пределами границ.

Overrides:
setSample в классе ComponentSampleModel
Parameters:
x - Координата X пикселя
y - Координата Y пикселя
b - Номер полосы
s - Входная выборка как число с двойной точностью
data - DataBuffer, содержащий данные изображения
See Also:
getSample(int, int, int, DataBuffer)

setSamples

public void setSamples(int x,
                       int y,
                       int w,
                       int h,
                       int b,
                       int[] iArray,
                       DataBuffer data)

Устанавливает выборки в указанной полосе для указанного прямоугольника пикселей из целочисленного массива, содержащего по одной выборке на элемент массива. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты находятся за пределами границ.

Overrides:
setSamples в классе ComponentSampleModel
Parameters:
x - Координата X левого верхнего пикселя
y - Координата Y левого верхнего пикселя
w - Ширина прямоугольника пикселей
h - Высота прямоугольника пикселей
b - Номер полосы
iArray - Входной массив выборок
data - DataBuffer, содержащий данные изображения
See Also:
getSamples(int, int, int, int, int, int[], DataBuffer)

hashCode

public int hashCode()

Описание скопировано из класса: Object

Возвращает значение хэш-кода для объекта. Этот метод поддерживается для удобства хэш-таблиц, таких как предоставляемые HashMap.

Общее соглашение для метода hashCode:

  • Всякий раз, когда он вызывается на одном объекте более одного раза во время выполнения Java-приложения, метод hashCode должен последовательно возвращать одно и то же целое число, при условии, что информация, используемая в сравнениях equals с объектом, не изменяется. Это целое число не обязательно должно оставаться неизменным от одного выполнения приложения к другому выполнению того же приложения.
  • Если два объекта равны в соответствии с методом equals(Object), то вызов метода hashCode для каждого из двух объектов должен давать один и тот же целочисленный результат.
  • Не требуется, чтобы если два объекта не равны в соответствии с методом Object.equals(java.lang.Object), то вызов метода hashCode для каждого из двух объектов должен давать различные целочисленные результаты. Однако программист должен понимать, что получение различных целочисленных результатов для неравных объектов может улучшить производительность хэш-таблиц.

Насколько это разумно практически, метод hashCode, определенный классом Object, возвращает различные целые числа для различных объектов. (Это обычно реализуется путем преобразования внутреннего адреса объекта в целое число, но эта методика реализации не требуется языком программирования Java™).

Overrides:
hashCode в классе ComponentSampleModel
Returns:
значение хэш-кода для этого объекта.
See Also:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

© 1993, 2020, 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