Spec-Zone.ru › OpenJDK 8

Класс MultiPixelPackedSampleModel

  • java.lang.Object
    • java.awt.image.SampleModel
      • java.awt.image.MultiPixelPackedSampleModel

public class MultiPixelPackedSampleModel
extends SampleModel

Класс MultiPixelPackedSampleModel представляет изображения с одним каналом и может упаковывать несколько однопиксельных пикселей в один элемент данных. Пиксели не могут охватывать несколько элементов данных. Тип данных может быть DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT или DataBuffer.TYPE_INT. Каждый пиксель должен иметь число бит, являющееся степенью двойки, и число пикселей, являющееся степенью двойки, должно точно помещаться в один элемент данных. Шаг пикселя в битах равен числу бит на пиксель. Шаг строки в элементах данных, и несколько последних элементов данных могут быть заполнены неиспользуемыми пикселями. Смещение данных в битах — это смещение в битах от начала DataBuffer до первого пикселя и должно быть кратно шагу пикселя в битах.

Следующий код иллюстрирует извлечение бит для пикселя x, y из DataBuffer data и сохранение данных пикселя в элементах данных типа dataType:

int dataElementSize = DataBuffer.getDataTypeSize(dataType);
      int bitnum = dataBitOffset + x*pixelBitStride;
      int element = data.getElem(y*scanlineStride + bitnum/dataElementSize);
      int shift = dataElementSize - (bitnum & (dataElementSize-1))
                  - pixelBitStride;
      int pixel = (element >> shift) & ((1 << pixelBitStride) - 1);

Поля

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

dataType, height, numBands, width

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

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

Создает MultiPixelPackedSampleModel с указанным типом данных, шириной, высотой и числом бит на пиксель.

MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits, int scanlineStride, int dataBitOffset)

Создаёт MultiPixelPackedSampleModel с указанным типом данных, шириной, высотой, числом бит на пиксель, шагом строки и смещением данных в битах.

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

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

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

DataBuffer createDataBuffer()

Создаёт DataBuffer, соответствующий этому MultiPixelPackedSampleModel.

SampleModel createSubsetSampleModel(int[] bands)

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

boolean equals(Object o)

Указывает, является ли другой объект "равным" этому.

int getBitOffset(int x)

Возвращает смещение, в битах, в элементе данных, в котором хранится x-й пиксель строки.

int getDataBitOffset()

Возвращает смещение данных в битах.

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

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

int getNumDataElements()

Возвращает количество элементов данных, необходимых для передачи одного пикселя с помощью методов getDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer) и setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer).

int getOffset(int x, int y)

Возвращает смещение пикселя (x, y) в элементах массива данных.

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

Возвращает указанный пиксель одного канала в первом элементе массива int.

int getPixelBitStride()

Возвращает шаг пикселя в битах.

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

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

int[] getSampleSize()

Возвращает число бит на образец для всех каналов.

int getSampleSize(int band)

Возвращает число бит на образец для указанного канала.

int getScanlineStride()

Возвращает шаг строки.

int getTransferType()

Возвращает TransferType, используемый для передачи пикселей с помощью методов getDataElements и setDataElements.

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 setSample(int x, int y, int b, int s, DataBuffer data)

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

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

getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getPixels, getSampleDouble, getSampleFloat, getSamples, getSamples, getSamples, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setPixels, setSample, setSample, setSamples, setSamples, setSamples

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

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

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

MultiPixelPackedSampleModel

public MultiPixelPackedSampleModel(int dataType,
                                   int w,
                                   int h,
                                   int numberOfBits)

Создаёт MultiPixelPackedSampleModel с указанным типом данных, шириной, высотой и количеством бит на пиксель.

Параметры:
dataType - тип данных для хранения выборок
w - ширина в пикселях области данных изображения
h - высота в пикселях области данных изображения
numberOfBits - количество бит на пиксель
Исключения:
IllegalArgumentException - если dataType не равно DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, или DataBuffer.TYPE_INT

MultiPixelPackedSampleModel

public MultiPixelPackedSampleModel(int dataType,
                                   int w,
                                   int h,
                                   int numberOfBits,
                                   int scanlineStride,
                                   int dataBitOffset)

Создаёт MultiPixelPackedSampleModel с указанными типом данных, шириной, высотой, количеством бит на пиксель, шагом строки и смещением данных.

Параметры:
dataType - тип данных для хранения выборок
w - ширина в пикселях области данных изображения
h - высота в пикселях области данных изображения
numberOfBits - количество бит на пиксель
scanlineStride - шаг строки данных изображения
dataBitOffset - смещение данных в битах для области данных изображения
Исключения:
RasterFormatException - если количество бит на пиксель не является степенью двойки или если количество пикселей, являющихся степенью двойки, не помещается в один элемент данных.
IllegalArgumentException - если w или h не больше 0
IllegalArgumentException - если dataType не равно DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, или DataBuffer.TYPE_INT

Методы

createCompatibleSampleModel

public SampleModel createCompatibleSampleModel(int w,
                                               int h)

Создаёт новый MultiPixelPackedSampleModel с заданной шириной и высотой. Новый MultiPixelPackedSampleModel имеет тот же тип данных хранения и количество бит на пиксель, что и этот MultiPixelPackedSampleModel.

Определено в:
createCompatibleSampleModel в классе SampleModel
Параметры:
w - заданная ширина
h - заданная высота
Возвращает:
a SampleModel с заданной шириной и высотой и с тем же типом данных хранения и количеством бит на пиксель, что и этот MultiPixelPackedSampleModel.
Исключения:
IllegalArgumentException - если w или h не больше 0

createDataBuffer

public DataBuffer createDataBuffer()

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

Определено в:
createDataBuffer в классе SampleModel
Возвращает:
DataBuffer с тем же типом данных и размером, что и этот MultiPixelPackedSampleModel.

getNumDataElements

public int getNumDataElements()

Возвращает количество элементов данных, необходимых для передачи одного пикселя через методы getDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer) и setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer). Для MultiPixelPackedSampleModel, это один.

Определено в:
getNumDataElements в классе SampleModel
Возвращает:
количество элементов данных.
См. также:
SampleModel.getDataElements(int, int, Object, DataBuffer), SampleModel.getDataElements(int, int, int, int, Object, DataBuffer), SampleModel.setDataElements(int, int, Object, DataBuffer), SampleModel.setDataElements(int, int, int, int, Object, DataBuffer), SampleModel.getTransferType()

getSampleSize

public int[] getSampleSize()

Возвращает количество бит на образец для всех каналов.

Определено в:
getSampleSize в классе SampleModel
Возвращает:
количество бит на образец.

getSampleSize

public int getSampleSize(int band)

Возвращает количество бит на образец для указанного канала.

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

getOffset

public int getOffset(int x,
                     int y)

Возвращает смещение пикселя (x, y) в элементах массива данных.

Параметры:
x - координата X указанного пикселя
y - координата Y указанного пикселя
Возвращает:
смещение указанного пикселя.

getBitOffset

public int getBitOffset(int x)

Возвращает смещение в битах в элементе данных, в котором хранится x-й пиксель строки сканирования. Это смещение одинаково для всех строк сканирования.

Параметры:
x - указанный пиксель
Возвращает:
смещение в битах указанного пикселя.

getScanlineStride

public int getScanlineStride()

Возвращает шаг строки сканирования.

Возвращает:
шаг строки сканирования этого MultiPixelPackedSampleModel.

getPixelBitStride

public int getPixelBitStride()

Возвращает шаг пикселя в битах. Это значение равно количеству бит на пиксель.

Возвращает:
шаг пикселя в битах этого MultiPixelPackedSampleModel.

getDataBitOffset

public int getDataBitOffset()

Возвращает смещение данных в битах.

Возвращает:
смещение данных в битах этого MultiPixelPackedSampleModel.

getTransferType

public int getTransferType()

Возвращает TransferType, используемый для передачи пикселей с помощью методов getDataElements и setDataElements . TransferType может или не может быть таким же, как хранилище DataType. TransferType — один из DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT или DataBuffer.TYPE_INT.

Переопределяет:
getTransferType в классе SampleModel
Возвращает:
тип передачи.
См. также:
SampleModel.getDataElements(int, int, Object, DataBuffer), SampleModel.getDataElements(int, int, int, int, Object, DataBuffer), SampleModel.setDataElements(int, int, Object, DataBuffer), SampleModel.setDataElements(int, int, int, int, Object, DataBuffer), SampleModel.getNumDataElements(), DataBuffer

createSubsetSampleModel

public SampleModel createSubsetSampleModel(int[] bands)

Создаёт новый MultiPixelPackedSampleModel с подмножеством каналов этого MultiPixelPackedSampleModel. Поскольку у MultiPixelPackedSampleModel только один канал, аргумент bands должен иметь длину один и указывать на нулевой канал.

Определено в:
createSubsetSampleModel в классе SampleModel
Параметры:
bands - указанные каналы
Возвращает:
новый SampleModel с подмножеством каналов этого MultiPixelPackedSampleModel.
Исключения:
RasterFormatException - если количество запрошенных каналов не равно одному.
IllegalArgumentException - если w или h не больше 0

getSample

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

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

Определено в:
getSample в классе SampleModel
Параметры:
x - координата X указанного пикселя
y - координата Y указанного пикселя
b - канал для возвращения, который предполагается равным 0
data - DataBuffer, содержащий данные изображения
Возвращает:
указанный канал, содержащий образец указанного пикселя.
Исключения:
ArrayIndexOutOfBoundsException - если указанные координаты не в пределах границ.
См. также:
setSample(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 - канал для возвращения, который предполагается равным 0
s - входной образец как int
data - DataBuffer, где хранятся данные изображения
Исключения:
ArrayIndexOutOfBoundsException - если координаты не в пределах границ.
См. также:
getSample(int, int, int, DataBuffer)

getDataElements

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

Возвращает данные для одного пикселя в примитивном массиве типа TransferType. Для MultiPixelPackedSampleModel, массив содержит один элемент, а тип — это наименьший из DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT или DataBuffer.TYPE_INT, который может содержать один пиксель. Как правило, obj должен быть передан в качестве null, чтобы Object был создан автоматически и был правильного примитивного типа данных.

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

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

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

Определено в:
getDataElements в классе SampleModel
Параметры:
x - координата X указанного пикселя
y - координата Y указанного пикселя
obj - примитивный массив, в который нужно вернуть данные пикселя, или null.
data - DataBuffer, содержащий данные изображения.
Возвращает:
Object содержащий данные указанного пикселя.
Исключения:
ClassCastException - если obj не является примитивным массивом типа TransferType или не null
ArrayIndexOutOfBoundsException - если координаты находятся вне границ или если obj не является null или не достаточно велик для хранения данных пикселя
См. также:
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 где хранятся данные изображения
Возвращает:
массив, содержащий указанный пиксель.
Исключения:
ArrayIndexOutOfBoundsException - если координаты находятся вне границ
См. также:
setPixel(int, int, int[], DataBuffer)

setDataElements

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

Устанавливает данные для одного пикселя в указанном DataBuffer из примитивного массива типа TransferType. Для MultiPixelPackedSampleModel, только первый элемент массива содержит действительные данные, а тип должен быть наименьшим из DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT или DataBuffer.TYPE_INT, который может содержать один пиксель.

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

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

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

Определено в:
setDataElements в классе SampleModel
Параметры:
x - координата X положения пикселя
y - координата Y положения пикселя
obj - примитивный массив, содержащий данные пикселя
data - DataBuffer содержащий данные изображения
См. также:
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 содержащий данные изображения
См. также:
getPixel(int, int, int[], DataBuffer)

equals

public boolean equals(Object o)

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

Указывает, является ли другой объект "равным" этому объекту.

Метод equals реализует отношение эквивалентности на ссылках на объекты, отличных от null:

  • Он рефлексивен: для любой ссылки на объект, отличной от null x, x.equals(x) должен вернуть true.
  • Он симметричен: для любых значений ссылок на объекты, отличных от null x и y, x.equals(y) должен вернуть true тогда и только тогда, когда y.equals(x) возвращает true.
  • Он транзитивен: для любых значений ссылок на объекты, отличных от null x, y и z, если x.equals(y) возвращает true и y.equals(z) возвращает true, то x.equals(z) должен вернуть true.
  • Он постоянен: для любых значений ссылок на объекты, отличных от null x и y, многократные вызовы x.equals(y) последовательно возвращают true или последовательно возвращают false, при условии, что никакая информация, используемая в equals сравнениях объектов, не изменяется.
  • Для любого значения ссылки на объект, отличного от null x, x.equals(null) должен вернуть false.

Метод equals для класса Object реализует наиболее дискриминационное возможное отношение эквивалентности на объектах; то есть, для любых значений ссылок на объекты, отличных от null x и y, этот метод возвращает true тогда и только тогда, когда x и y ссылаются на один и тот же объект (x == y имеет значение true).

Обратите внимание, что обычно необходимо переопределить метод hashCode всякий раз, когда этот метод переопределяется, чтобы сохранить общий договор для метода hashCode, который гласит, что равные объекты должны иметь равные коды хэширования.

Переопределяет:
equals в классе Object
Параметры:
o - ссылка на объект для сравнения.
Возвращает:
true если этот объект такой же, как аргумент obj; false в противном случае.
См. также:
Object.hashCode(), HashMap

hashCode

public int hashCode()

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

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

Общий договор hashCode таков:

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

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

Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для этого объекта.
См. также:
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