Класс Raster
- Прямые известные подклассы:
WritableRaster
public class Raster extends Object
Raster определяет значения для пикселей, занимающих определённую прямоугольную область плоскости, не обязательно включающую (0, 0). Прямоугольник, известный как ограничительный прямоугольник Raster и доступный с помощью метода getBounds, определяется значениями minX, minY, width и height. Значения minX и minY определяют координату левого верхнего угла 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 |
Создаёт растр на основе BandedSampleModel со заданным типом данных, шириной, высотой, шагом сканирования, индексами банка и смещениями полос. |
static WritableRaster |
createBandedRaster |
Создаёт растр на основе BandedSampleModel со заданным типом данных, шириной, высотой и количеством полос. |
static WritableRaster |
createBandedRaster |
Создаёт растр на основе BandedSampleModel с указанным DataBuffer, шириной, высотой, шагом сканирования, индексами банка и смещениями полос. |
Raster |
createChild |
Возвращает новый растр, который разделяет весь или часть DataBuffer этого растра. |
WritableRaster |
createCompatibleWritableRaster() |
Создаёт совместимый записываемый растр такого же размера, как этот растр, с тем же SampleModel и новым инициализированным DataBuffer. |
WritableRaster |
createCompatibleWritableRaster |
Создаёт совместимый записываемый растр с указанным размером, новым SampleModel и новым инициализированным DataBuffer. |
WritableRaster |
createCompatibleWritableRaster |
Создаёт совместимый записываемый растр с указанным расположением (minX, minY) и размером (width, height), новым SampleModel и новым инициализированным DataBuffer. |
WritableRaster |
createCompatibleWritableRaster |
Создаёт совместимый записываемый растр с расположением (minX, minY) и размером (width, height), заданными rect, новым SampleModel и новым инициализированным DataBuffer. |
static WritableRaster |
createInterleavedRaster |
Создаёт растр на основе PixelInterleavedSampleModel со заданным типом данных, шириной, высотой, шагом сканирования, шагом пикселя и смещениями полос. |
static WritableRaster |
createInterleavedRaster |
Создаёт растр на основе PixelInterleavedSampleModel со заданным типом данных, шириной, высотой и количеством полос. |
static WritableRaster |
createInterleavedRaster |
Создаёт растр на основе PixelInterleavedSampleModel с указанным DataBuffer, шириной, высотой, шагом сканирования, шагом пикселя и смещениями полос. |
static WritableRaster |
createPackedRaster |
Создаёт растр на основе SinglePixelPackedSampleModel со заданным типом данных, шириной, высотой и масками полос. |
static WritableRaster |
createPackedRaster |
Создаёт растр на основе упакованного SampleModel со заданным типом данных, шириной, высотой, количеством полос и битами на полосу. |
static WritableRaster |
createPackedRaster |
Создаёт растр на основе SinglePixelPackedSampleModel с указанным DataBuffer, шириной, высотой, шагом сканирования и масками полос. |
static WritableRaster |
createPackedRaster |
Создаёт растр на основе MultiPixelPackedSampleModel с указанным DataBuffer, шириной, высотой и битами на пиксель. |
static Raster |
createRaster |
Создаёт растр с указанным SampleModel и DataBuffer. |
Raster |
createTranslatedChild |
Создаёт растр с такими же размерами, SampleModel и DataBuffer, как у этого, но с другим расположением. |
static WritableRaster |
createWritableRaster |
Создаёт записываемый растр с указанным SampleModel и DataBuffer. |
static WritableRaster |
createWritableRaster |
Создаёт записываемый растр с указанным SampleModel. |
Rectangle |
getBounds() |
Возвращает ограничивающую прямоугольную область этого растра. |
DataBuffer |
getDataBuffer() |
Возвращает DataBuffer, связанный с этим растром. |
Object |
getDataElements |
Возвращает пиксельные данные для указанного прямоугольника пикселей в примитивном массиве типа TransferType. |
Object |
getDataElements |
Возвращает данные для одного пикселя в примитивном массиве типа TransferType. |
final int |
getHeight() |
Возвращает высоту растра в пикселях. |
final int |
getMinX() |
Возвращает минимальную допустимую координату X растра. |
final int |
getMinY() |
Возвращает минимальную допустимую координату Y растра. |
final int |
getNumBands() |
Возвращает количество полос (образцов на пиксель) в этом растре. |
final int |
getNumDataElements() |
Возвращает количество элементов данных, необходимых для передачи одного пикселя через методы getDataElements и setDataElements. |
Raster |
getParent() |
Возвращает родительский растр (если есть) этого растра или 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 в систему координат растра. |
final int |
getSampleModelTranslateY() |
Возвращает смещение Y из системы координат SampleModel в систему координат растра. |
double[] |
getSamples |
Возвращает образцы для указанной полосы для указанного прямоугольника пикселей в массиве double, по одному образцу на элемент массива. |
float[] |
getSamples |
Возвращает образцы для указанной полосы для указанного прямоугольника пикселей в массиве float, по одному образцу на элемент массива. |
int[] |
getSamples |
Возвращает образцы для указанной полосы для указанного прямоугольника пикселей в массиве int, по одному образцу на элемент массива. |
final int |
getTransferType() |
Возвращает TransferType, используемый для передачи пикселей через методы getDataElements и setDataElements. |
final int |
getWidth() |
Возвращает ширину растра в пикселях. |
Подробное описание полей
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)
- Parameters:
-
sampleModel- SampleModel, определяющий макет -
origin- Точка, задающая начало координат - Throws:
-
RasterFormatException- если вычислениеorigin.x + sampleModel.getWidth()илиorigin.y + sampleModel.getHeight()приводит к переполнению целочисленной переменной -
NullPointerException- если либоsampleModel, либоoriginравно null
Raster
protected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin)
- Parameters:
-
sampleModel- SampleModel, определяющий макет -
dataBuffer- DataBuffer, содержащий данные изображения -
origin- Точка, задающая начало координат - Throws:
-
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)
- Parameters:
-
sampleModel- SampleModel, определяющий макет -
dataBuffer- DataBuffer, содержащий данные изображения -
aRegion- Прямоугольник, определяющий область изображения -
sampleModelTranslate- Точка, задающая смещение от координат SampleModel к координатам растра -
parent- Родитель (если есть) этого растра - Throws:
-
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)
Левый верхний угол растра задаётся аргументом location. Если location равен null, используется (0, 0). Параметр dataType должен быть одним из перечисленных значений, определённых в классе DataBuffer.
Обратите внимание, что интерлизованные DataBuffer.TYPE_INT растры не поддерживаются. Для создания растра с 1 полосой типа DataBuffer.TYPE_INT, используйте Raster.createPackedRaster().
В настоящее время поддерживаются только типы данных TYPE_BYTE и TYPE_USHORT.
- Parameters:
-
dataType- тип данных для хранения выборок -
w- ширина изображения в пикселях -
h- высота изображения в пикселях -
bands- количество полос -
location- верхний левый уголRaster - Returns:
- объект WritableRaster с указанным типом данных, шириной, высотой и количеством полос.
- Throws:
-
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)
Левый верхний угол растра задаётся аргументом location. Если location равен null, используется (0, 0). Параметр dataType должен быть одним из перечисленных значений, определённых в классе DataBuffer.
Обратите внимание, что интерлизованные DataBuffer.TYPE_INT растры не поддерживаются. Для создания растра с 1 полосой типа DataBuffer.TYPE_INT, используйте Raster.createPackedRaster().
В настоящее время поддерживаются только типы данных TYPE_BYTE и TYPE_USHORT.
- Parameters:
-
dataType- тип данных для хранения выборок -
w- ширина изображения в пикселях -
h- высота изображения в пикселях -
scanlineStride- шаг строки изображения -
pixelStride- шаг пикселя изображения -
bandOffsets- смещения всех полос -
location- верхний левый уголRaster - Returns:
- объект WritableRaster с указанным типом данных, шириной, высотой, шагом строки, шагом пикселя и смещениями полос.
- Throws:
-
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)
Обратите внимание, что перекрывающиеся 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)
- Параметры:
-
dataBuffer-DataBufferсодержащий данные изображения -
w- ширина данных изображения в пикселях -
h- высота данных изображения в пикселях -
scanlineStride- шаг строки данных изображения -
bankIndices- индексы банков для каждой полосы -
bandOffsets- смещения всех полос -
location- верхний левый уголRaster - Возвращает:
- объект WritableRaster с указанными
DataBuffer, шириной, высотой, шагом строки сканирования, индексами банков и смещениями полос. - Исключения:
-
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)
- Параметры:
-
dataBuffer-DataBufferсодержащий данные изображения -
w- ширина данных изображения в пикселях -
h- высота данных изображения в пикселях -
scanlineStride- шаг строки данных изображения -
bandMasks- массив, содержащий запись для каждой полосы -
location- верхний левый уголRaster - Возвращает:
- объект WritableRaster с указанными
DataBuffer, шириной, высотой, шагом строки сканирования и масками полос. - Исключения:
-
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)
- Параметры:
-
dataBuffer-DataBufferсодержащий данные изображения -
w- ширина данных изображения в пикселях -
h- высота данных изображения в пикселях -
bitsPerPixel- количество бит для каждого пикселя -
location- верхний левый уголRaster - Возвращает:
- объект WritableRaster с указанными
DataBuffer, шириной, высотой и количеством бит на пиксель. - Исключения:
-
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)
- Параметры:
-
sm- указанныйSampleModel -
db- указанныйDataBuffer -
location- верхний левый уголRaster - Возвращает:
Rasterс указаннымиSampleModel,DataBufferи location.- Исключения:
-
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)
- Параметры:
-
sm- указанныйSampleModel -
location- верхний левый уголWritableRaster - Возвращает:
WritableRasterс указаннымSampleModelи location.- Исключения:
-
RasterFormatException- если вычислениеlocation.x + sm.getWidth()илиlocation.y + sm.getHeight()приводит к переполнению целого числа
createWritableRaster
public static WritableRaster createWritableRaster(SampleModel sm, DataBuffer db, Point location)
- Параметры:
-
sm- указанныйSampleModel -
db- указанныйDataBuffer -
location- верхний левый уголWritableRaster - Возвращает:
WritableRasterс указаннымиSampleModel,DataBufferи location.- Исключения:
-
RasterFormatException- если вычислениеlocation.x + sm.getWidth()илиlocation.y + sm.getHeight()приводит к переполнению целого числа -
RasterFormatException- еслиdbсодержит более одного банка иsmявляется PixelInterleavedSampleModel, SinglePixelPackedSampleModel или MultiPixelPackedSampleModel. -
NullPointerException- если SampleModel или DataBuffer имеет значение null
getParent
public Raster getParent()
- Возвращает:
- родительский Raster или
null.
getSampleModelTranslateX
public final int getSampleModelTranslateX()
- Возвращает:
- сдвиг по оси X от пространства координат SampleModel Raster к пространству координат Raster.
getSampleModelTranslateY
public final int getSampleModelTranslateY()
- Возвращает:
- сдвиг по оси Y от пространства координат SampleModel Raster к пространству координат Raster.
createCompatibleWritableRaster
public WritableRaster createCompatibleWritableRaster()
- Возвращает:
- совместимый
WritableRasterс той же моделью выборки и новым буфером данных.
createCompatibleWritableRaster
public WritableRaster createCompatibleWritableRaster(int w, int h)
- Параметры:
-
w- указанная ширина новогоWritableRaster -
h- указанная высота новогоWritableRaster - Возвращает:
- совместимый
WritableRasterс указанным размером, новой моделью выборки и буфером данных. - Исключения:
-
RasterFormatException- если ширина или высота меньше или равна нулю.
createCompatibleWritableRaster
public WritableRaster createCompatibleWritableRaster(Rectangle rect)
- Parameters:
-
rect- aRectangle, который определяет размер и расположениеWritableRaster - Returns:
- совместимый
WritableRasterс указанными размером и расположением и новой моделью образцов и буфером данных. - Throws:
-
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)
- Parameters:
-
x- координата X верхнего левого углаWritableRaster -
y- координата Y верхнего левого углаWritableRaster -
w- заданная ширинаWritableRaster -
h- заданная высотаWritableRaster - Returns:
- совместимый
WritableRasterс указанными размером и расположением и новой моделью образцов и буфером данных. - Throws:
-
RasterFormatException- еслиwилиhменьше или равны нулю, или вычислениеx + wилиy + hприводит к переполнению целого числа
createTranslatedChild
public Raster createTranslatedChild(int childMinX, int childMinY)
- Parameters:
-
childMinX- координата X верхнего левого угла новогоRaster -
childMinY- координата Y верхнего левого угла новогоRaster - Returns:
- новый
Rasterс тем же размером, SampleModel и DataBuffer, что и этотRaster, но с указанным расположением. - Throws:
-
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.
- Parameters:
-
parentX- Координата X верхнего левого угла в координатах этого Raster -
parentY- Координата Y верхнего левого угла в координатах этого Raster -
width- Ширина области, начинающейся в (parentX, parentY) -
height- Высота области, начинающейся в (parentX, parentY). -
childMinX- Координата X верхнего левого угла возвращаемого Raster -
childMinY- Координата Y верхнего левого угла возвращаемого Raster -
bandList- Массив индексов полос или null для использования всех полос - Returns:
- новый
Raster. - Throws:
-
RasterFormatException- если указанный подрегион находится за пределами границ растра. -
widthилиheightменьше или равно нулю, или вычислениеparentX + width,parentY + height,childMinX + width, илиchildMinY + heightприводит к переполнению целого числа
getBounds
public Rectangle getBounds()
- Returns:
- прямоугольник границ этого
Raster.
getMinX
public final int getMinX()
- Returns:
- минимальная координата x этого
Raster.
getMinY
public final int getMinY()
- Returns:
- минимальная координата y этого
Raster.
getWidth
public final int getWidth()
- Returns:
- ширина этого
Raster.
getHeight
public final int getHeight()
- Returns:
- высота этого
Raster.
getNumBands
public final int getNumBands()
- Returns:
- количество полос этого
Raster.
getNumDataElements
public final int getNumDataElements()
- Returns:
- количество элементов данных.
getTransferType
public final int getTransferType()
- Returns:
- тип передачи.
getDataBuffer
public DataBuffer getDataBuffer()
- Returns:
- DataBuffer этого
Raster.
getSampleModel
public SampleModel getSampleModel()
- Returns:
- 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)
- Параметры:
-
x- Координата X верхнего левого пикселя -
y- Координата Y верхнего левого пикселя -
w- Ширина прямоугольника пикселей -
h- Высота прямоугольника пикселей -
b- Возвращаемый канал -
fArray- Дополнительно предопределённый массив float - Возвращает:
- образцы для указанного канала для заданного прямоугольника пикселей.
- Исключение:
-
ArrayIndexOutOfBoundsException- если координаты или индекс канала находятся вне границ или если fArray слишком мал для хранения результата.
getSamples
public double[] getSamples(int x, int y, int w, int h, int b, double[] dArray)
- Параметры:
-
x- Координата X верхнего левого пикселя -
y- Координата Y верхнего левого пикселя -
w- Ширина прямоугольника пикселей -
h- Высота прямоугольника пикселей -
b- Возвращаемый канал -
dArray- Дополнительно предопределённый массив double - Возвращает:
- образцы для указанного канала для заданного прямоугольника пикселей.
- Исключение:
-
ArrayIndexOutOfBoundsException- если координаты или индекс канала находятся вне границ или если dArray слишком мал для хранения результата.
© 1993, 2021, 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://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/java/awt/image/Raster.html