Spec-Zone.ru › OpenJDK 24

Класс SinglePixelPackedSampleModel

java.lang.Object
java.awt.image.SampleModel
java.awt.image.SinglePixelPackedSampleModel
public class SinglePixelPackedSampleModel extends SampleModel
Этот класс представляет данные пикселей, упакованные таким образом, что N выборок, составляющих один пиксель, хранятся в одном элементе массива данных, а каждый элемент массива данных содержит выборки только для одного пикселя. Этот класс поддерживает типы данных TYPE_BYTE, TYPE_USHORT, TYPE_INT. Все элементы массива данных находятся в первом банке DataBuffer. Предоставляются методы доступа, позволяющие напрямую манипулировать данными изображения. Шаг строки сканирования — это количество элементов массива данных между заданной выборкой и соответствующей выборкой в том же столбце следующей строки сканирования. Маски битов — это маски, необходимые для извлечения выборок, представляющих полосы пикселя. Сдвиги битов — это смещения в битах внутри элемента массива данных выборок, представляющих полосы пикселя.

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


      int sample = data.getElem(y * scanlineStride + x);
      sample = (sample & bitMasks[b]) >>> bitOffsets[b];
 

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

Поля, объявленные в классе java.awt.image.SampleModel

dataType, height, numBands, width

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

Конструктор Описание
SinglePixelPackedSampleModel(int dataType, int w, int h, int[] bitMasks)
Создаёт SinglePixelPackedSampleModel с полосами, равными bitMasks.length.
SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bitMasks)
Создаёт SinglePixelPackedSampleModel с полосами, равными bitMasks.length, и шагом строки сканирования, равным scanlineStride элементам массива данных.

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

Модификатор и тип Метод Описание
SampleModel createCompatibleSampleModel(int w, int h)
Создаёт новый SinglePixelPackedSampleModel с указанной шириной и высотой.
DataBuffer createDataBuffer()
Создаёт DataBuffer, соответствующий этому SinglePixelPackedSampleModel.
SampleModel createSubsetSampleModel(int[] bands)
Создаёт новый SinglePixelPackedSampleModel с подмножеством полос этого SinglePixelPackedSampleModel.
int[] getBitMasks()
Возвращает маски битов для всех полос.
int[] getBitOffsets()
Возвращает сдвиги битов внутри элемента массива данных, представляющего пиксель, для всех полос.
Object getDataElements(int x, int y, Object obj, DataBuffer data)
Возвращает данные для одного пикселя в примитивном массиве типа TransferType.
int getNumDataElements()
Возвращает количество элементов данных, необходимых для передачи одного пикселя через методы getDataElements и setDataElements.
int getOffset(int x, int y)
Возвращает смещение (в элементах массива данных) пикселя (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, одна выборка на элемент массива.
int getSample(int x, int y, int b, DataBuffer data)
Возвращает выборку в указанной полосе для пикселя, расположенного в координатах (x,y), как int.
int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
Возвращает выборки для указанной полосы для указанного прямоугольника пикселей в массиве int, одна выборка на элемент массива.
int[] getSampleSize()
Возвращает количество битов на выборку для всех полос.
int getSampleSize(int band)
Возвращает количество битов на выборку для указанной полосы.
int getScanlineStride()
Возвращает шаг строки сканирования этого SinglePixelPackedSampleModel.
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, 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.SampleModel

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

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

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

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

SinglePixelPackedSampleModel

public SinglePixelPackedSampleModel(int dataType, int w, int h, int[] bitMasks)
Создаёт SinglePixelPackedSampleModel с количеством полос, равным bitMasks.length. Каждый образец хранится в элементе массива данных в позиции, соответствующей его маске бита. Каждая маска бита должна быть непрерывной, и маски не должны перекрываться. Маски битов, превышающие емкость типа данных, усекаются.
Параметры:
dataType - Тип данных для хранения образцов.
w - Ширина (в пикселях) области данных изображения.
h - Высота (в пикселях) области данных изображения.
bitMasks - Маски битов для всех полос.
Исключения:
IllegalArgumentException - если dataType не является ни DataBuffer.TYPE_BYTE, ни DataBuffer.TYPE_USHORT, ни DataBuffer.TYPE_INT

SinglePixelPackedSampleModel

public SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bitMasks)
Создаёт SinglePixelPackedSampleModel с bitMasks.length полосами и шагом строки, равным scanlineStride элементам массива данных. Каждый образец хранится в элементе массива данных в позиции, соответствующей его маске бита. Каждая маска бита должна быть непрерывной, и маски не должны перекрываться. Маски битов, превышающие емкость типа данных, усекаются.
Параметры:
dataType - Тип данных для хранения образцов.
w - Ширина (в пикселях) области данных изображения.
h - Высота (в пикселях) области данных изображения.
scanlineStride - Шаг строки данных изображения.
bitMasks - Маски битов для всех полос.
Исключения:
IllegalArgumentException - если w или h не больше 0
IllegalArgumentException - если какая-либо маска в bitMask не является непрерывной
IllegalArgumentException - если dataType не является ни DataBuffer.TYPE_BYTE, ни DataBuffer.TYPE_USHORT, ни DataBuffer.TYPE_INT

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

getNumDataElements

public int getNumDataElements()
Возвращает количество элементов данных, необходимых для передачи одного пикселя с помощью методов getDataElements и setDataElements. Для SinglePixelPackedSampleModel это один.
Определено в:
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()

createCompatibleSampleModel

public SampleModel createCompatibleSampleModel(int w, int h)
Создаёт новый SinglePixelPackedSampleModel с указанной шириной и высотой. Новый SinglePixelPackedSampleModel будет иметь тот же тип данных хранения и маски битов, что и этот SinglePixelPackedSampleModel.
Определено в:
createCompatibleSampleModel в классе SampleModel
Параметры:
w - ширина результирующего SampleModel
h - высота результирующего SampleModel
Возвращает:
SinglePixelPackedSampleModel с указанной шириной и высотой.
Исключения:
IllegalArgumentException - если w или h не больше 0

createDataBuffer

public DataBuffer createDataBuffer()
Создаёт DataBuffer, соответствующий этому SinglePixelPackedSampleModel. Тип данных и размер DataBuffer будут соответствовать этому SinglePixelPackedSampleModel. DataBuffer будет иметь один банк.
Определено в:
createDataBuffer в классе SampleModel
Возвращает:
DataBuffer, соответствующий этому SinglePixelPackedSampleModel.

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,y, можно получить из DataBuffer data с SinglePixelPackedSampleModel sppsm так:
        data.getElem(sppsm.getOffset(x, y));
 
Параметры:
x - координата X указанного пикселя
y - координата Y указанного пикселя
Возвращает:
смещение указанного пикселя.

getBitOffsets

public int[] getBitOffsets()
Возвращает смещения битов в элементе массива данных, представляющем пиксель для всех полос.
Возвращает:
смещения битов, представляющие пиксель для всех полос.

getBitMasks

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

getScanlineStride

public int getScanlineStride()
Возвращает шаг строки этого SinglePixelPackedSampleModel.
Возвращает:
шаг строки этого SinglePixelPackedSampleModel.

createSubsetSampleModel

public SampleModel createSubsetSampleModel(int[] bands)
Создаёт новый SinglePixelPackedSampleModel с подмножеством полос этого SinglePixelPackedSampleModel. Новый SinglePixelPackedSampleModel может быть использован с любым DataBuffer, с которым может использоваться существующий SinglePixelPackedSampleModel. Новая комбинация SinglePixelPackedSampleModel/DataBuffer будет представлять изображение с подмножеством полос исходной комбинации SinglePixelPackedSampleModel/DataBuffer.
Определено в:
createSubsetSampleModel в классе SampleModel
Параметры:
bands - подмножество полос этого SinglePixelPackedSampleModel
Возвращает:
SinglePixelPackedSampleModel с подмножеством полос этого SinglePixelPackedSampleModel.
Исключения:
RasterFormatException - если длина аргумента bands больше, чем количество полос в образце модели.

getDataElements

public Object getDataElements(int x, int y, Object obj, DataBuffer data)
Возвращает данные для одного пикселя в массиве примитивного типа TransferType. Для SinglePixelPackedSampleModel массив будет иметь один элемент, и тип будет таким же, как тип данных хранения. Как правило, obj следует передавать как null, чтобы объект создавался автоматически и был правильного примитивного типа.

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

       SinglePixelPackedSampleModel sppsm1, sppsm2;
       DataBufferInt db1, db2;
       sppsm2.setDataElements(x, y, sppsm1.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, содержащий данные изображения.
Возвращает:
данные для указанного пикселя.
См. также:
  • setDataElements(int, int, Object, DataBuffer)

getPixel

public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
Возвращает все образцы для указанного пикселя в массиве int. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты не находятся в пределах границ.
Overrides:
getPixel в классе SampleModel
Параметры:
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, если координаты не находятся в пределах границ.
Overrides:
getPixels в классе SampleModel
Параметры:
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). Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты не находятся в пределах границ.
Specified by:
getSample в классе SampleModel
Параметры:
x - Координата X расположения пикселя.
y - Координата Y расположения пикселя.
b - Полоса для возврата.
data - DataBuffer, содержащий данные изображения.
Возвращает:
образец в указанной полосе для указанного пикселя.
См. также:
  • setSample(int, int, int, int, DataBuffer)

getSamples

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

setDataElements

public void setDataElements(int x, int y, Object obj, DataBuffer data)
Устанавливает данные для одного пикселя в указанном DataBuffer из примитивного массива типа TransferType. Для SinglePixelPackedSampleModel только первый элемент массива будет содержать действительные данные, и тип массива должен совпадать с типом данных хранилища SinglePixelPackedSampleModel.

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

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

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

Specified by:
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, если координаты не находятся в пределах границ.
Overrides:
setPixel в классе SampleModel
Параметры:
x - Координата X расположения пикселя.
y - Координата Y расположения пикселя.
iArray - Входные образцы в массиве int.
data - DataBuffer, содержащий данные изображения.
См. также:
  • getPixel(int, int, int[], DataBuffer)

setPixels

public void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
Устанавливает все образцы для прямоугольника пикселей из массива int, содержащего по одному образцу на элемент. Может быть выброшено исключение ArrayIndexOutOfBoundsException, если координаты не находятся в пределах границ.
Overrides:
setPixels в классе SampleModel
Параметры:
x - Координата X верхнего левого пикселя.
y - Координата Y верхнего левого пикселя.
w - Ширина прямоугольника пикселей.
h - Высота прямоугольника пикселей.
iArray - Входные образцы в массиве int.
data - DataBuffer, содержащий данные изображения.
См. также:
  • 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, если координаты не находятся в пределах границ.
Specified by:
setSample в классе SampleModel
Параметры:
x - Координата X расположения пикселя.
y - Координата Y расположения пикселя.
b - Полоса для установки.
s - Входной образец как int.
data - DataBuffer, содержащий данные изображения.
См. также:
  • 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, если координаты не находятся в пределах границ.
Overrides:
setSamples в классе SampleModel
Параметры:
x - Координата X верхнего левого пикселя.
y - Координата Y верхнего левого пикселя.
w - Ширина прямоугольника пикселей.
h - Высота прямоугольника пикселей.
b - Полоса для установки.
iArray - Входные образцы в массиве int.
data - DataBuffer, содержащий данные изображения.
См. также:
  • getSamples(int, int, int, int, int, int[], DataBuffer)

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/image/SinglePixelPackedSampleModel.html

Spec-Zone.ru

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