Класс Raster
- Прямые известные подклассы:
WritableRaster
public class Raster extends Object
Raster определяет значения для пикселей, занимающих определённую прямоугольную область плоскости, не обязательно включая (0, 0). Прямоугольник, известный как ограничивающий прямоугольник Raster и доступный посредством метода getBounds, определяется значениями minX, minY, width и height. Значения minX и minY определяют координаты левого верхнего угла Raster. Обращения к пикселям за пределами ограничивающего прямоугольника могут привести к выбрасыванию исключения или к обращению к непредназначенным элементам связанного с Raster DataBuffer. Ответственность за избежание доступа к таким пикселям лежит на пользователе.
SampleModel описывает, как образцы Raster хранятся в элементах примитивного массива DataBuffer. Образцы могут храниться по одному на элемент данных, как в PixelInterleavedSampleModel или BandedSampleModel, или упаковываться по несколько в один элемент, как в SinglePixelPackedSampleModel или MultiPixelPackedSampleModel. SampleModel также управляет расширением знаков, что позволяет хранить беззнаковые данные в знаковом Java-типах данных, таких как byte, short и int.
Хотя Raster может располагаться где угодно на плоскости, SampleModel использует простую систему координат, начинающуюся с (0, 0). Поэтому Raster содержит коэффициент перевода, позволяющий отображать расположения пикселей между системой координат Raster и SampleModel. Преобразование из системы координат SampleModel в систему координат Raster можно получить с помощью методов getSampleModelTranslateX и getSampleModelTranslateY.
Raster может совместно использовать DataBuffer с другим Raster как посредством явного построения, так и с помощью методов createChild и createTranslatedChild. Rasters, созданные этими методами, могут вернуть ссылку на Raster, из которого они были созданы, с помощью метода getParent. Для Raster, который не был создан с помощью createTranslatedChild или createChild, getParent вернёт null.
Метод createTranslatedChild возвращает новый Raster, который разделяет все данные текущего Raster, но занимает ограничивающий прямоугольник той же ширины и высоты, но с другой начальной точкой. Например, если родительский Raster занимал область от (10, 10) до (100, 100), а переведённый Raster был определён как начинающийся в (50, 50), то пиксель (20, 20) родителя и пиксель (60, 60) ребёнка занимают одно и то же место в DataBuffer, разделяемом двумя Rasters. В первом случае к координатам пикселя нужно добавить (-10, -10), чтобы получить соответствующие координаты SampleModel, а во втором случае (-50, -50).
Преобразование между родительским и дочерним Raster может быть определено путём вычитания значений sampleModelTranslateX и sampleModelTranslateY ребёнка из значений родителя.
Метод createChild может использоваться для создания нового Raster, занимающего только часть ограничивающего прямоугольника родителя (с той же или смещённой системой координат) или с подмножеством полос родителя.
Все конструкторы защищены. Правильный способ создания Raster — использование одного из статических методов create, определённых в этом классе. Эти методы создают экземпляры Raster, использующие стандартные SampleModels Interleaved, Banded и Packed и которые могут обрабатываться более эффективно, чем Raster, созданный путём объединения внешне сгенерированного SampleModel и DataBuffer.
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected DataBuffer |
dataBuffer |
DataBuffer, хранящий данные изображения. |
protected int |
height |
Высота этого Raster. |
protected int |
minX |
Координата X левого верхнего пикселя этого Raster. |
protected int |
minY |
Координата Y левого верхнего пикселя этого Raster. |
protected int |
numBands |
Количество полос в Raster. |
protected int |
numDataElements |
Количество элементов данных DataBuffer на пиксель. |
protected Raster |
parent |
Родитель этого Raster, или null. |
protected SampleModel |
sampleModel |
SampleModel, описывающий, как пиксели из этого Raster хранятся в DataBuffer. |
protected int |
sampleModelTranslateX |
Смещение X из пространства координат SampleModel Raster в пространство координат Raster. |
protected int |
sampleModelTranslateY |
Смещение Y из пространства координат SampleModel Raster в пространство координат Raster. |
protected int |
width |
Ширина этого Raster. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт Raster с заданным SampleModel и DataBuffer. |
|
protected |
Создаёт Raster с заданным SampleModel, DataBuffer и родителем. |
|
protected |
Создаёт Raster с заданным SampleModel. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static WritableRaster |
createBandedRaster |
Создает Raster на основе BandedSampleModel со указанным типом данных, шириной, высотой, шагом сканирования, индексами банков и смещениями каналов. |
static WritableRaster |
createBandedRaster |
Создаёт Raster на основе BandedSampleModel со указанным типом данных, шириной, высотой и количеством каналов. |
static WritableRaster |
createBandedRaster |
Создаёт Raster на основе BandedSampleModel со указанным буфером данных, шириной, высотой, шагом сканирования, индексами банков и смещениями каналов. |
Raster |
createChild |
Возвращает новый Raster, который использует весь или часть буфера данных этого Raster. |
WritableRaster |
createCompatibleWritableRaster() |
Создаёт совместимый WritableRaster с теми же размерами, SampleModel и инициализированным буфером данных, что и этот Raster. |
WritableRaster |
createCompatibleWritableRaster |
Создаёт совместимый WritableRaster с заданными размерами, новым SampleModel и инициализированным буфером данных. |
WritableRaster |
createCompatibleWritableRaster |
Создаёт совместимый WritableRaster с заданной локацией (minX, minY) и размером (width, height), новым SampleModel и инициализированным буфером данных. |
WritableRaster |
createCompatibleWritableRaster |
Создаёт совместимый WritableRaster с локацией (minX, minY) и размером (width, height), заданными rect, новым SampleModel и инициализированным буфером данных. |
static WritableRaster |
createInterleavedRaster |
Создаёт Raster на основе PixelInterleavedSampleModel с указанным типом данных, шириной, высотой, шагом сканирования, шагом пикселя и смещениями каналов. |
static WritableRaster |
createInterleavedRaster |
Создаёт Raster на основе PixelInterleavedSampleModel с указанным типом данных, шириной, высотой и количеством каналов. |
static WritableRaster |
createInterleavedRaster |
Создаёт Raster на основе PixelInterleavedSampleModel с указанным буфером данных, шириной, высотой, шагом сканирования, шагом пикселя и смещениями каналов. |
static WritableRaster |
createPackedRaster |
Создаёт Raster на основе SinglePixelPackedSampleModel с указанным типом данных, шириной, высотой и масками каналов. |
static WritableRaster |
createPackedRaster |
Создаёт Raster на основе упакованного SampleModel с указанным типом данных, шириной, высотой, количеством каналов и количеством бит на канал. |
static WritableRaster |
createPackedRaster |
Создаёт Raster на основе SinglePixelPackedSampleModel с указанным буфером данных, шириной, высотой, шагом сканирования и масками каналов. |
static WritableRaster |
createPackedRaster |
Создаёт Raster на основе MultiPixelPackedSampleModel с указанным буфером данных, шириной, высотой и количеством бит на пиксель. |
static Raster |
createRaster |
Создаёт Raster с указанным SampleModel и буфером данных. |
Raster |
createTranslatedChild |
Создаёт Raster с такими же размерами, SampleModel и буфером данных, что и этот, но с другим расположением. |
static WritableRaster |
createWritableRaster |
Создаёт WritableRaster с указанным SampleModel и буфером данных. |
static WritableRaster |
createWritableRaster |
Создаёт WritableRaster с указанным SampleModel. |
Rectangle |
getBounds() |
Возвращает ограничивающую прямоугольную область этого Raster. |
DataBuffer |
getDataBuffer() |
Возвращает буфер данных, связанный с этим Raster. |
Object |
getDataElements |
Возвращает данные пикселей для заданного прямоугольника пикселей в примитивном массиве типа TransferType. |
Object |
getDataElements |
Возвращает данные одного пикселя в примитивном массиве типа TransferType. |
final int |
getHeight() |
Возвращает высоту Raster в пикселях. |
final int |
getMinX() |
Возвращает минимальную действительную координату X Raster. |
final int |
getMinY() |
Возвращает минимальную действительную координату Y Raster. |
final int |
getNumBands() |
Возвращает количество каналов (образов на пиксель) в этом Raster. |
final int |
getNumDataElements() |
Возвращает количество элементов данных, необходимых для передачи одного пикселя с помощью методов getDataElements и setDataElements. |
Raster |
getParent() |
Возвращает родительский Raster (если есть) этого Raster или null. |
double[] |
getPixel |
Возвращает образцы в массиве double для указанного пикселя. |
float[] |
getPixel |
Возвращает образцы в массиве float для указанного пикселя. |
int[] |
getPixel |
Возвращает образцы в массиве int для указанного пикселя. |
double[] |
getPixels |
Возвращает массив double, содержащий все образцы для прямоугольника пикселей, по одному образцу на элемент массива. |
float[] |
getPixels |
Возвращает массив float, содержащий все образцы для прямоугольника пикселей, по одному образцу на элемент массива. |
int[] |
getPixels |
Возвращает массив int, содержащий все образцы для прямоугольника пикселей, по одному образцу на элемент массива. |
int |
getSample |
Возвращает образец в указанном канале для пикселя, расположенного в (x, y), как int. |
double |
getSampleDouble |
Возвращает образец в указанном канале для пикселя, расположенного в (x, y), как double. |
float |
getSampleFloat |
Возвращает образец в указанном канале для пикселя, расположенного в (x, y), как float. |
SampleModel |
getSampleModel() |
Возвращает SampleModel, описывающий расположение данных изображения. |
final int |
getSampleModelTranslateX() |
Возвращает смещение по оси X от системы координат SampleModel к системе координат Raster. |
final int |
getSampleModelTranslateY() |
Возвращает смещение по оси Y от системы координат SampleModel к системе координат Raster. |
double[] |
getSamples |
Возвращает образцы для указанного канала для заданного прямоугольника пикселей в массиве double, по одному образцу на элемент массива. |
float[] |
getSamples |
Возвращает образцы для указанного канала для заданного прямоугольника пикселей в массиве float, по одному образцу на элемент массива. |
int[] |
getSamples |
Возвращает образцы для указанного канала для заданного прямоугольника пикселей в массиве int, по одному образцу на элемент массива. |
final int |
getTransferType() |
Возвращает TransferType, используемый для передачи пикселей через методы getDataElements и setDataElements. |
final int |
getWidth() |
Возвращает ширину Raster в пикселях. |
Подробное описание полей
sampleModel
protected SampleModel sampleModel
dataBuffer
protected DataBuffer dataBuffer
minX
protected int minX
minY
protected int minY
width
protected int width
height
protected int height
sampleModelTranslateX
protected int sampleModelTranslateX
sampleModelTranslateY
protected int sampleModelTranslateY
numBands
protected int numBands
numDataElements
protected int numDataElements
parent
protected Raster parent
Подробное описание конструкторов
Raster
protected Raster(SampleModel sampleModel, Point origin)
- Параметры:
-
sampleModel- SampleModel, определяющий расположение -
origin- Точка, определяющая начало координат - Исключения:
-
RasterFormatException- если вычислениеorigin.x + sampleModel.getWidth()илиorigin.y + sampleModel.getHeight()приводит к переполнению целых чисел -
NullPointerException- если либоsampleModel, либоoriginравно null
Raster
protected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin)
- Параметры:
-
sampleModel- SampleModel, определяющий расположение -
dataBuffer- DataBuffer, содержащий данные изображения -
origin- Точка, определяющая начало координат - Исключения:
-
RasterFormatException- если вычислениеorigin.x + sampleModel.getWidth()илиorigin.y + sampleModel.getHeight()приводит к переполнению целых чисел -
NullPointerException- если либоsampleModel, либоoriginравно null
Raster
protected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point sampleModelTranslate, Raster parent)
- Параметры:
-
sampleModel- SampleModel, определяющий расположение -
dataBuffer- DataBuffer, содержащий данные изображения -
aRegion- Прямоугольник, определяющий область изображения -
sampleModelTranslate- Точка, определяющая смещение от координат SampleModel к координатам Raster -
parent- Родительский Raster (если есть) - Исключения:
-
NullPointerException- если любой изsampleModel,dataBuffer,aRegionилиsampleModelTranslateравен null -
RasterFormatException- если уaRegionширина или высота меньше или равны нулю, или вычислениеaRegion.x + aRegion.widthилиaRegion.y + aRegion.heightприводит к переполнению целых чисел
Подробное описание методов
createInterleavedRaster
public static WritableRaster createInterleavedRaster(int dataType, int w, int h, int bands, Point location)
Левый верхний угол Raster задаётся аргументом location. Если location равен null, используется (0, 0). Параметр dataType должен быть одним из перечислений, определённых в классе DataBuffer.
Обратите внимание, что интерлинованные DataBuffer.TYPE_INT Raster не поддерживаются. Для создания Raster с 1 каналом типа DataBuffer.TYPE_INT используйте Raster.createPackedRaster().
В настоящее время поддерживаются только типы данных TYPE_BYTE и TYPE_USHORT.
- Параметры:
-
dataType- тип данных для хранения выборок -
w- ширина изображения в пикселях -
h- высота изображения в пикселях -
bands- количество каналов -
location- верхний левый уголRaster - Возвращает:
- объект WritableRaster с указанным типом данных, шириной, высотой и количеством каналов.
- Исключения:
-
IllegalArgumentException- еслиdataTypeне является одним из поддерживаемых типов данных -
IllegalArgumentException- еслиbandsменьше 1 -
IllegalArgumentException- еслиwиhне оба > 0 -
IllegalArgumentException- если произведениеwиhбольшеInteger.MAX_VALUE -
RasterFormatException- если вычислениеlocation.x + wилиlocation.y + hприводит к переполнению целых чисел
createInterleavedRaster
public static WritableRaster createInterleavedRaster(int dataType, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
Левый верхний угол Raster задаётся аргументом location. Если location равен null, используется (0, 0). Параметр dataType должен быть одним из перечислений, определённых в классе DataBuffer.
Обратите внимание, что интерлинованные DataBuffer.TYPE_INT Raster не поддерживаются. Для создания Raster с 1 каналом типа DataBuffer.TYPE_INT используйте Raster.createPackedRaster().
В настоящее время поддерживаются только типы данных TYPE_BYTE и TYPE_USHORT.
- Параметры:
-
dataType- тип данных для хранения выборок -
w- ширина изображения в пикселях -
h- высота изображения в пикселях -
scanlineStride- шаг строки данных изображения -
pixelStride- шаг пикселя данных изображения -
bandOffsets- смещения всех каналов -
location- верхний левый уголRaster - Возвращает:
- объект WritableRaster с указанным типом данных, шириной, высотой, шагом строки, шагом пикселя и смещениями каналов.
- Исключения:
-
IllegalArgumentException- еслиdataTypeне является одним из поддерживаемых типов данных, которые являютсяDataBuffer.TYPE_BYTE, илиDataBuffer.TYPE_USHORT. -
IllegalArgumentException- еслиwиhне оба > 0 -
IllegalArgumentException- если произведениеwиhбольшеInteger.MAX_VALUE -
RasterFormatException- если вычислениеlocation.x + wилиlocation.y + hприводит к переполнению целых чисел -
IllegalArgumentException- еслиscanlineStrideменьше 0 -
IllegalArgumentException- еслиpixelStrideменьше 0 -
NullPointerException- еслиbandOffsetsравен null
createBandedRaster
public static WritableRaster createBandedRaster(int dataType, int w, int h, int bands, Point location)
Верхний левый угол Raster задаётся аргументом location. Если location равен null, будет использоваться (0, 0). Параметр dataType должен быть одним из перечисленных значений, определённых в классе DataBuffer.
В настоящее время поддерживаются только типы данных TYPE_BYTE, TYPE_USHORT и TYPE_INT.
- Параметры:
-
dataType- тип данных для хранения образцов -
w- ширина в пикселях данных изображения -
h- высота в пикселях данных изображения -
bands- число каналов -
location- верхний левый уголRaster - Возвращает:
- объект WritableRaster с указанным типом данных, шириной, высотой и числом каналов.
- Исключения:
-
IllegalArgumentException- еслиdataTypeне является одним из поддерживаемых типов данных, которые являютсяDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORTилиDataBuffer.TYPE_INT -
IllegalArgumentException- еслиwиhне оба больше 0 -
IllegalArgumentException- если произведениеwиhбольше, чемInteger.MAX_VALUE -
IllegalArgumentException- если вычислениеlocation.x + wилиlocation.y + hприводит к переполнению целого числа -
ArrayIndexOutOfBoundsException- еслиbandsменьше 1
createBandedRaster
public static WritableRaster createBandedRaster(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
Верхний левый угол Raster задаётся аргументом location. Параметр dataType должен быть одним из перечисленных значений, определённых в классе DataBuffer.
В настоящее время поддерживаются только типы данных TYPE_BYTE, TYPE_USHORT и TYPE_INT.
- Параметры:
-
dataType- тип данных для хранения образцов -
w- ширина в пикселях данных изображения -
h- высота в пикселях данных изображения -
scanlineStride- шаг строки сканирования данных изображения -
bankIndices- индексы банка для каждого канала -
bandOffsets- смещения всех каналов -
location- верхний левый уголRaster - Возвращает:
- объект WritableRaster с указанным типом данных, шириной, высотой, шагом строки сканирования, индексами банка и смещениями каналов.
- Исключения:
-
IllegalArgumentException- еслиdataTypeне является одним из поддерживаемых типов данных, которые являютсяDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORTилиDataBuffer.TYPE_INT -
IllegalArgumentException- еслиwиhне оба больше 0 -
IllegalArgumentException- если произведениеwиhбольше, чемInteger.MAX_VALUE -
IllegalArgumentException- если вычислениеlocation.x + wилиlocation.y + hприводит к переполнению целого числа -
IllegalArgumentException- еслиscanlineStrideменьше 0 -
ArrayIndexOutOfBoundsException- еслиbankIndicesявляетсяnull -
NullPointerException- еслиbandOffsetsявляетсяnull
createPackedRaster
public static WritableRaster createPackedRaster(int dataType, int w, int h, int[] bandMasks, Point location)
Верхний левый угол Raster задаётся аргументом location. Если location равен null, будет использоваться (0, 0). Параметр dataType должен быть одним из перечисленных значений, определённых в классе DataBuffer.
В настоящее время поддерживаются только типы данных TYPE_BYTE, TYPE_USHORT и TYPE_INT.
- Параметры:
-
dataType- тип данных для хранения образцов -
w- ширина в пикселях данных изображения -
h- высота в пикселях данных изображения -
bandMasks- массив, содержащий запись для каждого канала -
location- верхний левый уголRaster - Возвращает:
- объект WritableRaster с указанным типом данных, шириной, высотой и масками каналов.
- Исключения:
-
RasterFormatException- еслиwилиhменьше или равно нулю, или вычислениеlocation.x + wилиlocation.y + hприводит к переполнению целого числа -
IllegalArgumentException- еслиdataTypeне является одним из поддерживаемых типов данных, которые являютсяDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORTилиDataBuffer.TYPE_INT
createPackedRaster
public static WritableRaster createPackedRaster(int dataType, int w, int h, int bands, int bitsPerBand, Point location)
Если число каналов больше одного, SampleModel будет SinglePixelPackedSampleModel, при этом каждый канал будет иметь bitsPerBand бит. В любом случае, требования к dataType и bitsPerBand, налагаемые соответствующим SampleModel, должны быть выполнены.
Верхний левый угол Raster задаётся аргументом location. Если location равен null, будет использоваться (0, 0). Параметр dataType должен быть одним из перечисленных значений, определённых в классе DataBuffer.
В настоящее время поддерживаются только типы данных TYPE_BYTE, TYPE_USHORT и TYPE_INT.
- Параметры:
-
dataType- тип данных для хранения образцов -
w- ширина в пикселях данных изображения -
h- высота в пикселях данных изображения -
bands- число каналов -
bitsPerBand- число бит на канал -
location- верхний левый уголRaster - Возвращает:
- объект WritableRaster с указанным типом данных, шириной, высотой, числом каналов и битами на канал.
- Исключения:
-
RasterFormatException- еслиwилиhменьше или равно нулю, или вычислениеlocation.x + wилиlocation.y + hприводит к переполнению целого числа -
IllegalArgumentException- если произведениеbitsPerBandиbandsбольше, чем число бит, удерживаемыхdataType -
IllegalArgumentException- еслиbitsPerBandилиbandsне больше нуля -
IllegalArgumentException- еслиdataTypeне является одним из поддерживаемых типов данных, которые являютсяDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORTилиDataBuffer.TYPE_INT
createInterleavedRaster
public static WritableRaster createInterleavedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
Обратите внимание, что interleaved DataBuffer.TYPE_INT Raster не поддерживаются. Чтобы создать 1-канальный Raster типа DataBuffer.TYPE_INT, используйте Raster.createPackedRaster().
- Параметры:
-
dataBuffer-DataBuffer, содержащий данные изображения -
w- ширина в пикселях данных изображения -
h- высота в пикселях данных изображения -
scanlineStride- шаг строки сканирования данных изображения -
pixelStride- шаг пикселя данных изображения -
bandOffsets- смещения всех каналов -
location- верхний левый уголRaster - Возвращает:
- объект WritableRaster с указанными
DataBuffer, шириной, высотой, шагом строки сканирования, шагом пикселя и смещениями каналов. - Исключения:
-
IllegalArgumentException- еслиdataTypeне является одним из поддерживаемых типов данных, которые являютсяDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT -
NullPointerException- еслиdataBufferравен null -
IllegalArgumentException- еслиdataTypeне является одним из поддерживаемых типов данных, которые являютсяDataBuffer.TYPE_BYTEилиDataBuffer.TYPE_USHORT. -
RasterFormatException- еслиdataBufferсодержит более одного банка. -
IllegalArgumentException- еслиwиhне оба > 0 -
IllegalArgumentException- если произведениеwиhбольше, чемInteger.MAX_VALUE -
RasterFormatException- если вычислениеlocation.x + wилиlocation.y + hприводит к переполнению целого числа -
IllegalArgumentException- еслиscanlineStrideменьше 0 -
IllegalArgumentException- еслиpixelStrideменьше 0 -
NullPointerException- еслиbandOffsetsравен null
createBandedRaster
public static WritableRaster createBandedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
- Parameters:
-
dataBuffer- theDataBufferthat contains the image data -
w- ширина в пикселях данных изображения -
h- высота в пикселях данных изображения -
scanlineStride- шаг строки сканирования данных изображения -
bankIndices- индексы банков для каждого канала -
bandOffsets- смещения всех каналов -
location- верхний левый уголRaster - Returns:
- объект WritableRaster с указанным
DataBuffer, шириной, высотой, шагом строки сканирования, индексами банков и смещениями каналов. - Throws:
-
NullPointerException- еслиdataBufferравен null, илиbankIndicesравен null, илиbandOffsetsравен null -
IllegalArgumentException- еслиdataTypeне является одним из поддерживаемых типов данных, которые являютсяDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORTилиDataBuffer.TYPE_INT, или еслиwилиhменьше или равно нулю, или если произведениеwиhбольшеInteger.MAX_VALUEили еслиscanlineStrideменьше нуля, или если длинаbankIndicesне равна длинеbandOffsets -
RasterFormatException- если вычислениеlocation.x + wилиlocation.y + hприводит к переполнению целого числа
createPackedRaster
public static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bandMasks, Point location)
- Parameters:
-
dataBuffer- theDataBufferthat contains the image data -
w- ширина в пикселях данных изображения -
h- высота в пикселях данных изображения -
scanlineStride- шаг строки сканирования данных изображения -
bandMasks- массив, содержащий запись для каждого канала -
location- верхний левый уголRaster - Returns:
- объект WritableRaster с указанным
DataBuffer, шириной, высотой, шагом строки сканирования и масками каналов. - Throws:
-
RasterFormatException- еслиwилиhменьше или равно нулю, или вычислениеlocation.x + wилиlocation.y + hприводит к переполнению целого числа -
IllegalArgumentException- еслиdataBufferне является одним из поддерживаемых типов данных, которые являютсяDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORTилиDataBuffer.TYPE_INT -
RasterFormatException- еслиdataBufferсодержит более одного банка. -
NullPointerException- еслиdataBufferравен null
createPackedRaster
public static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, int bitsPerPixel, Point location)
- Parameters:
-
dataBuffer- theDataBufferthat contains the image data -
w- ширина в пикселях данных изображения -
h- высота в пикселях данных изображения -
bitsPerPixel- количество бит на каждый пиксель -
location- верхний левый уголRaster - Returns:
- объект WritableRaster с указанным
DataBuffer, шириной, высотой и количеством бит на пиксель. - Throws:
-
RasterFormatException- еслиwилиhменьше или равно нулю, или вычислениеlocation.x + wилиlocation.y + hприводит к переполнению целого числа -
IllegalArgumentException- еслиdataTypeне является одним из поддерживаемых типов данных, которые являютсяDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORTилиDataBuffer.TYPE_INT -
RasterFormatException- еслиdataBufferсодержит более одного банка. -
NullPointerException- еслиdataBufferравен null
createRaster
public static Raster createRaster(SampleModel sm, DataBuffer db, Point location)
- Parameters:
-
sm- указанныйSampleModel -
db- указанныйDataBuffer -
location- верхний левый уголRaster - Returns:
Rasterс указаннымSampleModel,DataBufferи location.- Throws:
-
RasterFormatException- если вычислениеlocation.x + sm.getWidth()илиlocation.y + sm.getHeight()приводит к переполнению целого числа -
RasterFormatException- еслиdbсодержит более одного банка иsmявляется PixelInterleavedSampleModel, SinglePixelPackedSampleModel или MultiPixelPackedSampleModel. -
NullPointerException- если SampleModel или DataBuffer равны null
createWritableRaster
public static WritableRaster createWritableRaster(SampleModel sm, Point location)
- Parameters:
-
sm- указанныйSampleModel -
location- верхний левый уголWritableRaster - Returns:
WritableRasterс указаннымSampleModelи location.- Throws:
-
RasterFormatException- если вычислениеlocation.x + sm.getWidth()илиlocation.y + sm.getHeight()приводит к переполнению целого числа
createWritableRaster
public static WritableRaster createWritableRaster(SampleModel sm, DataBuffer db, Point location)
- Parameters:
-
sm- указанныйSampleModel -
db- указанныйDataBuffer -
location- верхний левый уголWritableRaster - Returns:
WritableRasterс указаннымSampleModel,DataBufferи location.- Throws:
-
RasterFormatException- если вычислениеlocation.x + sm.getWidth()илиlocation.y + sm.getHeight()приводит к переполнению целого числа -
RasterFormatException- еслиdbсодержит более одного банка иsmявляется PixelInterleavedSampleModel, SinglePixelPackedSampleModel или MultiPixelPackedSampleModel. -
NullPointerException- если SampleModel или DataBuffer равны null
getParent
public Raster getParent()
- Returns:
- родительский Raster или
null.
getSampleModelTranslateX
public final int getSampleModelTranslateX()
- Returns:
- смещение по X из пространства координат SampleModel Raster в пространство координат Raster.
getSampleModelTranslateY
public final int getSampleModelTranslateY()
- Returns:
- смещение по Y из пространства координат SampleModel Raster в пространство координат Raster.
createCompatibleWritableRaster
public WritableRaster createCompatibleWritableRaster()
- Returns:
- совместимый
WritableRasterс тем же sample model и новым data buffer.
createCompatibleWritableRaster
public WritableRaster createCompatibleWritableRaster(int w, int h)
- Параметры:
-
w- указанная ширина новогоWritableRaster -
h- указанная высота новогоWritableRaster - Возвращает:
- совместимый
WritableRasterзаданного размера с новой моделью SampleModel и буфером. - Исключение:
-
RasterFormatException- если ширина или высота меньше или равны нулю.
createCompatibleWritableRaster
public WritableRaster createCompatibleWritableRaster(Rectangle rect)
- Параметры:
-
rect-Rectangle, который задаёт размер и расположениеWritableRaster - Возвращает:
- совместимый
WritableRasterс заданным размером и расположением и новой моделью SampleModel и буфером. - Исключение:
-
RasterFormatException- если уrectширина или высота меньше или равны нулю, или вычислениеrect.x + rect.widthилиrect.y + rect.heightприводит к переполнению целого числа -
NullPointerException- еслиrectравно null
createCompatibleWritableRaster
public WritableRaster createCompatibleWritableRaster(int x, int y, int w, int h)
- Параметры:
-
x- координата X левого верхнего углаWritableRaster -
y- координата Y левого верхнего углаWritableRaster -
w- указанная ширинаWritableRaster -
h- указанная высотаWritableRaster - Возвращает:
- совместимый
WritableRasterс заданным размером и расположением и новой моделью SampleModel и буфером. - Исключение:
-
RasterFormatException- еслиwилиhменьше или равно нулю, или вычислениеx + wилиy + hприводит к переполнению целого числа
createTranslatedChild
public Raster createTranslatedChild(int childMinX, int childMinY)
- Параметры:
-
childMinX- координата X левого верхнего угла новогоRaster -
childMinY- координата Y левого верхнего угла новогоRaster - Возвращает:
- новый
Rasterс теми же размерами, SampleModel и DataBuffer, что и этотRaster, но с указанным расположением. - Исключение:
-
RasterFormatException- если вычислениеchildMinX + this.getWidth()илиchildMinY + this.getHeight()приводит к переполнению целого числа
createChild
public Raster createChild(int parentX, int parentY, int width, int height, int childMinX, int childMinY, int[] bandList)
Параметры parentX, parentY, width и height образуют прямоугольник в системе координат этого Raster, указывающий область пикселей, которые будут использоваться совместно. Ошибка будет выброшена, если этот прямоугольник не находится внутри границ текущего Raster.
Новый Raster может дополнительно быть переведён в другую систему координат для плоскости, отличную от используемой текущим Raster. Параметры childMinX и childMinY задают новые (x, y) координаты левого верхнего пикселя возвращаемого Raster; координата (childMinX, childMinY) в новом Raster будет соответствовать координате (parentX, parentY) в текущем Raster.
Новый Raster может быть определён таким образом, что он содержит только подмножество каналов текущего Raster, возможно, в переупорядоченном порядке, посредством параметра bandList. Если bandList равен null, предполагается, что он включает все каналы текущего Raster в их текущем порядке.
Для создания нового Raster, содержащего подобласть текущего Raster, но использующего его систему координат и каналы, этот метод должен вызываться с childMinX равным parentX, childMinY равным parentY и bandList равным null.
- Параметры:
-
parentX- Координата X левого верхнего угла в координатах этого Raster -
parentY- Координата Y левого верхнего угла в координатах этого Raster -
width- Ширина области, начинающейся в (parentX, parentY) -
height- Высота области, начинающейся в (parentX, parentY). -
childMinX- Координата X левого верхнего угла возвращаемого Raster -
childMinY- Координата Y левого верхнего угла возвращаемого Raster -
bandList- Массив индексов каналов или null для использования всех каналов - Возвращает:
- новый
Raster. - Исключение:
-
RasterFormatException- если указанная подобласть находится вне границ растра. -
RasterFormatException- еслиwidthилиheightменьше или равны нулю, или вычисление любого изparentX + width,parentY + height,childMinX + widthилиchildMinY + heightприводит к переполнению целого числа
getBounds
public Rectangle getBounds()
- Возвращает:
- ограничивающая рамка этого
Raster.
getMinX
public final int getMinX()
- Возвращает:
- минимальная координата x этого
Raster.
getMinY
public final int getMinY()
- Возвращает:
- минимальная координата y этого
Raster.
getWidth
public final int getWidth()
- Возвращает:
- ширина этого
Raster.
getHeight
public final int getHeight()
- Возвращает:
- высота этого
Raster.
getNumBands
public final int getNumBands()
- Возвращает:
- количество каналов этого
Raster.
getNumDataElements
public final int getNumDataElements()
- Возвращает:
- количество элементов данных.
getTransferType
public final int getTransferType()
- Возвращает:
- этот тип передачи.
getDataBuffer
public DataBuffer getDataBuffer()
- Возвращает:
DataBufferэтогоRaster.
getSampleModel
public SampleModel getSampleModel()
- Возвращает:
SampleModelэтогоRaster.
getDataElements
public Object getDataElements(int x, int y, Object outData)
- Parameters:
-
x- Координата X расположения пикселя -
y- Координата Y расположения пикселя -
outData- Ссылка на объект на массив типа, определенного getTransferType(), и длиной getNumDataElements(). Если null, будет выделен массив соответствующего типа и размера - Returns:
- Ссылка на объект на массив типа, определенного getTransferType(), с запрошенными данными пикселя.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты находятся вне границ или outData слишком мал для хранения результата. - See Also:
getDataElements
public Object getDataElements(int x, int y, int w, int h, Object outData)
- Parameters:
-
x- Координата X расположения верхнего левого пикселя -
y- Координата Y расположения верхнего левого пикселя -
w- Ширина прямоугольника пикселей -
h- Высота прямоугольника пикселей -
outData- Ссылка на объект на массив типа, определенного getTransferType(), и длиной w*h*getNumDataElements(). Если null, будет выделен массив соответствующего типа и размера. - Returns:
- Ссылка на объект на массив типа, определенного getTransferType(), с запрошенными данными пикселя.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты находятся вне границ или outData слишком мал для хранения результата. - See Also:
getPixel
public int[] getPixel(int x, int y, int[] iArray)
- Parameters:
-
x- Координата X расположения пикселя -
y- Координата Y расположения пикселя -
iArray- Дополнительно предварительно выделенный массив int - Returns:
- образцы для указанного пикселя.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты находятся вне границ или iArray слишком мал для хранения результата.
getPixel
public float[] getPixel(int x, int y, float[] fArray)
- Parameters:
-
x- Координата X расположения пикселя -
y- Координата Y расположения пикселя -
fArray- Дополнительно предварительно выделенный массив float - Returns:
- образцы для указанного пикселя.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты находятся вне границ или fArray слишком мал для хранения результата.
getPixel
public double[] getPixel(int x, int y, double[] dArray)
- Parameters:
-
x- Координата X расположения пикселя -
y- Координата Y расположения пикселя -
dArray- Дополнительно предварительно выделенный массив double - Returns:
- образцы для указанного пикселя.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты находятся вне границ или dArray слишком мал для хранения результата.
getPixels
public int[] getPixels(int x, int y, int w, int h, int[] iArray)
- Parameters:
-
x- Координата X расположения верхнего левого пикселя -
y- Координата Y расположения верхнего левого пикселя -
w- Ширина прямоугольника пикселей -
h- Высота прямоугольника пикселей -
iArray- Дополнительно предварительно выделенный массив int - Returns:
- образцы для указанного прямоугольника пикселей.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты находятся вне границ или iArray слишком мал для хранения результата.
getPixels
public float[] getPixels(int x, int y, int w, int h, float[] fArray)
- Parameters:
-
x- Координата X расположения пикселя -
y- Координата Y расположения пикселя -
w- Ширина прямоугольника пикселей -
h- Высота прямоугольника пикселей -
fArray- Дополнительно предварительно выделенный массив float - Returns:
- образцы для указанного прямоугольника пикселей.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты находятся вне границ или fArray слишком мал для хранения результата.
getPixels
public double[] getPixels(int x, int y, int w, int h, double[] dArray)
- Parameters:
-
x- Координата X расположения верхнего левого пикселя -
y- Координата Y расположения верхнего левого пикселя -
w- Ширина прямоугольника пикселей -
h- Высота прямоугольника пикселей -
dArray- Дополнительно предварительно выделенный массив double - Returns:
- образцы для указанного прямоугольника пикселей.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты находятся вне границ или dArray слишком мал для хранения результата.
getSample
public int getSample(int x, int y, int b)
- Parameters:
-
x- Координата X расположения пикселя -
y- Координата Y расположения пикселя -
b- Полоса для возврата - Returns:
- образец в указанной полосе для пикселя в указанной координате.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты или индекс полосы находятся вне границ.
getSampleFloat
public float getSampleFloat(int x, int y, int b)
- Parameters:
-
x- Координата X расположения пикселя -
y- Координата Y расположения пикселя -
b- Полоса для возврата - Returns:
- образец в указанной полосе для пикселя в указанной координате.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты или индекс полосы находятся вне границ.
getSampleDouble
public double getSampleDouble(int x, int y, int b)
- Parameters:
-
x- Координата X местоположения пикселя -
y- Координата Y местоположения пикселя -
b- Номер полосы для возврата - Returns:
- образец в указанной полосе для пикселя по указанным координатам.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты или индекс полосы находятся за пределами границ.
getSamples
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray)
- Parameters:
-
x- Координата X верхнего левого пикселя -
y- Координата Y верхнего левого пикселя -
w- Ширина прямоугольника пикселей -
h- Высота прямоугольника пикселей -
b- Номер полосы для возврата -
iArray- Дополнительно предварительно выделенный массив int - Returns:
- образцы для указанной полосы для заданного прямоугольника пикселей.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты или индекс полосы находятся за пределами границ или если iArray слишком мал для хранения результата.
getSamples
public float[] getSamples(int x, int y, int w, int h, int b, float[] fArray)
- Parameters:
-
x- Координата X верхнего левого пикселя -
y- Координата Y верхнего левого пикселя -
w- Ширина прямоугольника пикселей -
h- Высота прямоугольника пикселей -
b- Номер полосы для возврата -
fArray- Дополнительно предварительно выделенный массив float - Returns:
- образцы для указанной полосы для заданного прямоугольника пикселей.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты или индекс полосы находятся за пределами границ или если fArray слишком мал для хранения результата.
getSamples
public double[] getSamples(int x, int y, int w, int h, int b, double[] dArray)
- Parameters:
-
x- Координата X верхнего левого пикселя -
y- Координата Y верхнего левого пикселя -
w- Ширина прямоугольника пикселей -
h- Высота прямоугольника пикселей -
b- Номер полосы для возврата -
dArray- Дополнительно предварительно выделенный массив double - Returns:
- образцы для указанной полосы для заданного прямоугольника пикселей.
- Throws:
-
ArrayIndexOutOfBoundsException- если координаты или индекс полосы находятся за пределами границ или если dArray слишком мал для хранения результата.
© 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/Raster.html