|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.image.Raster
public class Raster
表示像素矩形数组的类。Raster 封装了存储采样值的 DataBuffer 和描述如何在 DataBuffer 中定位给定采样值的 SampleModel。
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 的坐标系统之间映射像素位置。通过 getSampleModelTranslateX 和 getSampleModelTranslateY 方法可获取从 SampleModel 坐标系统到 Raster 坐标系统的平移。
Raster 可以通过显示构造或使用 createChild 和 createTranslatedChild 方法与另一个 Raster 共享 DataBuffer。由这些方法所创建的 Raster 可以返回对通过 getParent 方法所创建的 Raster 的引用。对于不是通过调用 createTranslatedChild 或 createChild 所构造的 Raster,getParent 将返回 null。
createTranslatedChild 方法返回一个与当前 Raster 共享所有数据的新 Raster,但是却占用一个具有不同开始点,相同宽度和高度的边界矩形。例如,如果父 Raster 占用 (10, 10) 到 (100, 100) 的区域,并定义了平移的 Raster 从 (50, 50) 开始,则父 Raster 的像素 (20, 20) 和子 Raster 的像素 (60, 60) 占用两个 Raster 共享的 DataBuffer 中的同一位置。在第一种情况中,像素坐标应该加上 (-10, -10) 以得到对应的 SampleModel 坐标,在第二种情况中则应加上 (-50, -50)。
通过从父 Raster 的 sampleModelTranslateX 和 sampleModelTranslateY 值中减去子 Raster 的 sampleModelTranslateX 和 sampleModelTranslateY 值,可以确定父 Raster 和子 Raster 之间的平移。
createChild 方法可用于创建新的 Raster,该 Raster 只占用其父 Raster 边界矩形的一个子集(具有相同或平移后的坐标系统),或者具有的 band 为其父 Raster 的 band 的子集。
所有构造方法都是受保护的。创建 Raster 的正确方式是使用此类中所定义的某个静态创建方法。这些方法创建使用标准 Interleaved、Banded 和 Packed SampleModel 的 Raster 实例,并且对该实例的处理比对通过结合外部生成的 SampleModel 和 DataBuffer 所创建的 Raster 的处理要更高效。
DataBuffer
,
SampleModel
,
PixelInterleavedSampleModel
,
BandedSampleModel
,
SinglePixelPackedSampleModel
,
MultiPixelPackedSampleModel
字段摘要 | |
---|---|
protected DataBuffer |
dataBuffer
存储图像数据的 DataBuffer。 |
protected int |
height
此 Raster 的高度。 |
protected int |
minX
此 Raster 左上角像素的 X 坐标。 |
protected int |
minY
此 Raster 左上角像素的 Y 坐标。 |
protected int |
numBands
Raster 中的 band 数。 |
protected int |
numDataElements
DataBuffer 中每个像素的数据元素数。 |
protected Raster |
parent
此 Raster 的父 Raster,或者为 null。 |
protected SampleModel |
sampleModel
描述此 Raster 的像素在 DataBuffer 中的存储方式的 SampleModel。 |
protected int |
sampleModelTranslateX
从 Raster 的 SampleModel 坐标空间到该 Raster 坐标空间的 X 平移。 |
protected int |
sampleModelTranslateY
从 Raster 的 SampleModel 坐标空间到该 Raster 坐标空间的 Y 平移。 |
protected int |
width
此 Raster 的宽度。 |
构造方法摘要 | |
---|---|
protected |
Raster(SampleModel sampleModel,
DataBuffer dataBuffer,
Point origin)
构建具有给定 SampleModel 和 DataBuffer 的 Raster。 |
protected |
Raster(SampleModel sampleModel,
DataBuffer dataBuffer,
Rectangle aRegion,
Point sampleModelTranslate,
Raster parent)
构造具有给定 SampleModel、DataBuffer 和父 Raster 的 Raster。 |
protected |
Raster(SampleModel sampleModel,
Point origin)
构建具有给定 SampleModel 的 Raster。 |
方法摘要 | |
---|---|
static WritableRaster |
createBandedRaster(DataBuffer dataBuffer,
int w,
int h,
int scanlineStride,
int[] bankIndices,
int[] bandOffsets,
Point location)
根据 BandedSampleModel 创建一个具有指定 DataBuffer、宽度、高度、扫描行跨度、存储单元索引和 band 偏移量的 Raster。 |
static WritableRaster |
createBandedRaster(int dataType,
int w,
int h,
int scanlineStride,
int[] bankIndices,
int[] bandOffsets,
Point location)
根据 BandedSampleModel 创建一个具有指定数据类型、宽度、高度、扫描行跨度、存储单元索引和 band 偏移量的 Raster。 |
static WritableRaster |
createBandedRaster(int dataType,
int w,
int h,
int bands,
Point location)
根据 BandedSampleModel 创建一个具有指定数据类型、宽度、高度和 band 数的 Raster。 |
Raster |
createChild(int parentX,
int parentY,
int width,
int height,
int childMinX,
int childMinY,
int[] bandList)
返回共享此 Raster 的全部或部分 DataBuffer 的新 Raster。 |
WritableRaster |
createCompatibleWritableRaster()
创建一个兼容的 WritableRaster,具有与此 Raster 相同的大小、SampleModel,以及一个新初始化的 DataBuffer。 |
WritableRaster |
createCompatibleWritableRaster(int w,
int h)
创建一个具有指定大小、新 SampleModel 和新初始化的 DataBuffer 的兼容 WritableRaster。 |
WritableRaster |
createCompatibleWritableRaster(int x,
int y,
int w,
int h)
创建具有指定位置 (minX, minY) 和大小 (width, height)、新 SampleModel 和新初始化的 DataBuffer 的兼容 WritableRaster。 |
WritableRaster |
createCompatibleWritableRaster(Rectangle rect)
创建一个兼容的 WritableRaster,它具有由 rect 指定的位置 (minX, minY) 和大小 (width, height)、新 SampleModel 和新初始化的 DataBuffer。 |
static WritableRaster |
createInterleavedRaster(DataBuffer dataBuffer,
int w,
int h,
int scanlineStride,
int pixelStride,
int[] bandOffsets,
Point location)
根据 PixelInterleavedSampleModel 创建一个具有指定 DataBuffer、宽度、高度、扫描行跨度、像素跨度和 band 偏移量的 Raster。 |
static WritableRaster |
createInterleavedRaster(int dataType,
int w,
int h,
int scanlineStride,
int pixelStride,
int[] bandOffsets,
Point location)
根据 PixelInterleavedSampleModel 创建一个具有指定数据类型、宽度、高度、扫描行跨度、像素跨度和 band 偏移量的 Raster。 |
static WritableRaster |
createInterleavedRaster(int dataType,
int w,
int h,
int bands,
Point location)
根据 PixelInterleavedSampleModel 创建一个具有指定数据类型、宽度、高度和 band 数的 Raster。 |
static WritableRaster |
createPackedRaster(DataBuffer dataBuffer,
int w,
int h,
int scanlineStride,
int[] bandMasks,
Point location)
根据 SinglePixelPackedSampleModel 创建一个具有指定 DataBuffer、宽度、高度、扫描行跨度和 band 掩码的 Raster。 |
static WritableRaster |
createPackedRaster(DataBuffer dataBuffer,
int w,
int h,
int bitsPerPixel,
Point location)
根据 MultiPixelPackedSampleModel 创建一个具有指定 DataBuffer、宽度、高度和每像素位数的 Raster。 |
static WritableRaster |
createPackedRaster(int dataType,
int w,
int h,
int[] bandMasks,
Point location)
根据 SinglePixelPackedSampleModel 创建一个具有指定数据类型、宽度、高度和 band 掩码的 Raster。 |
static WritableRaster |
createPackedRaster(int dataType,
int w,
int h,
int bands,
int bitsPerBand,
Point location)
根据打包的 SampleModel 创建一个具有指定数据类型、宽度、高度、band 数和每 band 位数的 Raster。 |
static Raster |
createRaster(SampleModel sm,
DataBuffer db,
Point location)
创建具有指定 SampleModel 和 DataBuffer 的 Raster。 |
Raster |
createTranslatedChild(int childMinX,
int childMinY)
创建一个具有和此 Raster 相同大小、SampleModel 和 DataBuffer,但是具有不同位置的 Raster。 |
static WritableRaster |
createWritableRaster(SampleModel sm,
DataBuffer db,
Point location)
创建一个具有指定 SampleModel 和 DataBuffer 的 WritableRaster。 |
static WritableRaster |
createWritableRaster(SampleModel sm,
Point location)
创建一个具有指定 SampleModel 的 WritableRaster。 |
Rectangle |
getBounds()
返回此 Raster 的边界 Rectangle。 |
DataBuffer |
getDataBuffer()
返回与此 Raster 关联的 DataBuffer。 |
Object |
getDataElements(int x,
int y,
int w,
int h,
Object outData)
以 TransferType 类型的基本数组形式返回指定像素矩形的像素数据。 |
Object |
getDataElements(int x,
int y,
Object outData)
以 TransferType 类型的基本数组形式返回单个像素的数据。 |
int |
getHeight()
返回该 Raster 的像素高度。 |
int |
getMinX()
返回该 Raster 的最小有效 X 坐标。 |
int |
getMinY()
返回该 Raster 的最小有效 Y 坐标。 |
int |
getNumBands()
返回此 Raster 中的 band 数(每像素的采样)。 |
int |
getNumDataElements()
返回通过 getDataElements 和 setDataElements 方法传输一个像素所需的数据元素数。 |
Raster |
getParent()
返回此 Raster 的父 Raster(如果有),或者 null。 |
double[] |
getPixel(int x,
int y,
double[] dArray)
以 double 数组的形式返回指定像素的采样。 |
float[] |
getPixel(int x,
int y,
float[] fArray)
以 float 数组的形式返回指定像素的采样。 |
int[] |
getPixel(int x,
int y,
int[] iArray)
以 int 数组的形式返回指定像素的采样。 |
double[] |
getPixels(int x,
int y,
int w,
int h,
double[] dArray)
返回一个包含像素矩形所有采样的 double 数组,每个数组元素对应一个采样。 |
float[] |
getPixels(int x,
int y,
int w,
int h,
float[] fArray)
返回一个包含像素矩形所有采样的 float 数组,每个数组元素对应一个采样。 |
int[] |
getPixels(int x,
int y,
int w,
int h,
int[] iArray)
返回一个包含像素矩形所有采样的 int 数组,每个数组元素对应一个采样。 |
int |
getSample(int x,
int y,
int b)
以 int 的形式返回像素(位于 (x,y))指定 band 中的采样。 |
double |
getSampleDouble(int x,
int y,
int b)
以 double 的形式返回像素(位于 (x,y))指定 band 中的采样。 |
float |
getSampleFloat(int x,
int y,
int b)
以 float 的形式返回像素(位于 (x,y))指定 band 中的采样。 |
SampleModel |
getSampleModel()
返回描述图像数据布局的 SampleModel。 |
int |
getSampleModelTranslateX()
返回从 SampleModel 坐标系统到 Raster 坐标系统的 X 平移。 |
int |
getSampleModelTranslateY()
返回从 SampleModel 坐标系统到 Raster 坐标系统的 Y 平移。 |
double[] |
getSamples(int x,
int y,
int w,
int h,
int b,
double[] dArray)
以 double 数组的形式返回指定像素矩形的指定 band 的采样,每个数组元素对应一个采样。 |
float[] |
getSamples(int x,
int y,
int w,
int h,
int b,
float[] fArray)
以 float 数组的形式返回指定像素矩形的指定 band 的采样,每个数组元素对应一个采样。 |
int[] |
getSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray)
以 int 数组的形式返回指定像素矩形的指定 band 的采样,每个数组元素对应一个采样。 |
int |
getTransferType()
返回通过 getDataElements 和 setDataElements 方法传输像素所使用的 TransferType。 |
int |
getWidth()
返回该 Raster 的像素宽度。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
protected SampleModel sampleModel
protected DataBuffer dataBuffer
protected int minX
protected int minY
protected int width
protected int height
protected int sampleModelTranslateX
protected int sampleModelTranslateY
protected int numBands
protected int numDataElements
protected Raster parent
构造方法详细信息 |
---|
protected Raster(SampleModel sampleModel, Point origin)
sampleModel
- 指定布局的 SampleModelorigin
- 指定原点的 Point
RasterFormatException
- 如果计算 origin.x + sampleModel.getWidth()
或 origin.y + sampleModel.getHeight()
导致整数溢出
NullPointerException
- 如果 sampleModel
或 origin
为 nullprotected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin)
sampleModel
- 指定布局的 SampleModeldataBuffer
- 包含图像数据的 DataBufferorigin
- 指定原点的 Point
RasterFormatException
- 如果计算 origin.x + sampleModel.getWidth()
或 origin.y + sampleModel.getHeight()
导致整数溢出
NullPointerException
- 如果 sampleModel
或 origin
为 nullprotected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point sampleModelTranslate, Raster parent)
sampleModel
- 指定布局的 SampleModeldataBuffer
- 包含图像数据的 DataBufferaRegion
- 指定图像数据的 RectanglesampleModelTranslate
- 指定从 SampleModel 向 Raster 坐标平移的 Pointparent
- 此 raster 的父 raster(如果有)
NullPointerException
- 如果任意 sampleModel
、dataBuffer
、aRegion
或 sampleModelTranslate
为 null
RasterFormatException
- 如果 aRegion
的宽度或高度小于或等于 0,或者计算 aRegion.x + aRegion.width
或 aRegion.y + aRegion.height
导致整数溢出方法详细信息 |
---|
public static WritableRaster createInterleavedRaster(int dataType, int w, int h, int bands, Point location)
通过 location 参数给出该 Raster 的左上角。如果 location 为 null,则将使用 (0, 0)。dataType 参数应该是 DataBuffer 类中所定义的某个枚举值。
注意,不支持交替存储的 DataBuffer.TYPE_INT
Raster。要创建 DataBuffer.TYPE_INT
类型的、具有 1 个 band 的 Raster,请使用 Raster.createPackedRaster()。
目前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。
dataType
- 存储采样的数据类型w
- 图像数据的像素宽度h
- 图像数据的像素高度bands
- band 数location
- Raster
的左上角
RasterFormatException
- 如果 w
或 h
小于或等于 0,或者计算 location.x + w
或 location.y + h
导致整数溢出public static WritableRaster createInterleavedRaster(int dataType, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
通过 location 参数给出该 Raster 的左上角。如果 location 为 null,则将使用 (0, 0)。dataType 参数应该是 DataBuffer 类中所定义的某个枚举值。
注意,不支持交替存储的 DataBuffer.TYPE_INT
Raster。要创建 DataBuffer.TYPE_INT
类型的、具有 1 个 band 的 Raster,请使用 Raster.createPackedRaster()。
目前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。
dataType
- 存储采样的数据类型w
- 图像数据的像素宽度h
- 图像数据的像素高度scanlineStride
- 图像数据的行跨度pixelStride
- 图像数据的像素跨度bandOffsets
- 所有 band 的偏移量location
- Raster
的左上角
RasterFormatException
- 如果 w
或 h
小于或等于 0,或者计算 location.x + w
或 location.y + h
导致整数溢出
IllegalArgumentException
- 如果 dataType
不是某个受支持的数据类型,即 DataBuffer.TYPE_BYTE
或 DataBuffer.TYPE_USHORT
。public static WritableRaster createBandedRaster(int dataType, int w, int h, int bands, Point location)
通过 location 参数给出该 Raster 的左上角。如果 location 为 null,则将使用 (0, 0)。dataType 参数应该是 DataBuffer 类中所定义的某个枚举值。
目前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。
dataType
- 存储采样的数据类型w
- 图像数据的像素宽度h
- 图像数据的像素高度bands
- band 数location
- Raster
的左上角
RasterFormatException
- 如果 w
或 h
小于或等于 0,或者计算 location.x + w
或 location.y + h
导致整数溢出
ArrayIndexOutOfBoundsException
- 如果 bands
小于 1public static WritableRaster createBandedRaster(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
通过 location 参数给出该 Raster 的左上角。dataType 参数应该是 DataBuffer 类中所定义的某个枚举值。
目前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。
dataType
- 存储采样的数据类型w
- 图像数据的像素宽度h
- 图像数据的像素高度scanlineStride
- 图像数据的行跨度bankIndices
- 每个 band 的存储单元索引bandOffsets
- 所有 band 的偏移量location
- Raster
的左上角
RasterFormatException
- 如果 w
或 h
小于或等于 0,或者计算 location.x + w
或 location.y + h
导致整数溢出
IllegalArgumentException
- 如果 dataType
不是某个受支持的数据类型,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
ArrayIndexOutOfBoundsException
- 如果 bankIndices
或 bandOffsets
为 null
public static WritableRaster createPackedRaster(int dataType, int w, int h, int[] bandMasks, Point location)
通过 location 参数给出该 Raster 的左上角。如果 location 为 null,则将使用 (0, 0)。dataType 参数应该是 DataBuffer 类中所定义的某个枚举值。
目前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。
dataType
- 存储采样的数据类型w
- 图像数据的像素宽度h
- 图像数据的像素高度bandMasks
- 包含每个 band 项的数组location
- Raster
的左上角
RasterFormatException
- 如果 w
或 h
小于或等于 0,或者计算 location.x + w
或 location.y + h
导致整数溢出
IllegalArgumentException
- 如果 dataType
不是一个受支持的数据类型,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
public static WritableRaster createPackedRaster(int dataType, int w, int h, int bands, int bitsPerBand, Point location)
如果 band 数大于一,则 SampleModel 将是一个 SinglePixelPackedSampleModel,每个 band 具有 bitsPerBand 位。在这两种情况下都要满足相应 SampleModel 对 dataType 和 bitsPerBand 的要求。
通过 location 参数给出该 Raster 的左上角。如果 location 为 null,则将使用 (0, 0)。dataType 参数应该是 DataBuffer 类中所定义的某个枚举值。
目前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。
dataType
- 存储采样的数据类型w
- 图像数据的像素宽度h
- 图像数据的像素高度bands
- band 数bitsPerBand
- 每个 band 的位数location
- Raster
的左上角
RasterFormatException
- 如果 w
或 h
小于或等于 0,或者计算 location.x + w
或 location.y + h
导致整数溢出
IllegalArgumentException
- 如果 bitsPerBand
和 bands
的乘积大于 dataType
中的位数
IllegalArgumentException
- 如果 bitsPerBand
或 bands
小于 0
IllegalArgumentException
- 如果 dataType
不是一个受支持的数据类型,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
public static WritableRaster createInterleavedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
注意,不支持交替存储的 DataBuffer.TYPE_INT
Raster。要创建 DataBuffer.TYPE_INT
类型的、具有 1 个 band 的 Raster,请使用 Raster.createPackedRaster()。
dataBuffer
- 包含图像数据的 DataBuffer
w
- 图像数据的像素宽度h
- 图像数据的像素高度scanlineStride
- 图像数据的行跨度pixelStride
- 图像数据的像素跨度bandOffsets
- 所有 band 的偏移量location
- Raster
的左上角
DataBuffer
、宽度、高度、扫描行跨度、像素跨度和 band 偏移量的 WritableRaster 对象。
RasterFormatException
- 如果 w
或 h
小于或等于 0,或者计算 location.x + w
或 location.y + h
导致整数溢出
IllegalArgumentException
- 如果 dataType
不是一个受支持的数据类型,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
RasterFormatException
- 如果 dataBuffer
有多个存储单元。
NullPointerException
- 如果 dataBuffer
为 nullpublic static WritableRaster createBandedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
dataBuffer
- 包含图像数据的 DataBuffer
w
- 图像数据的像素宽度h
- 图像数据的像素高度scanlineStride
- 图像数据的行跨度bankIndices
- 每个 band 的存储单元索引bandOffsets
- 所有 band 的偏移量location
- Raster
的左上角
DataBuffer
、宽度、高度、扫描行跨度、存储单元索引和 band 偏移量的 WritableRaster 对象。
RasterFormatException
- 如果 w
或 h
小于或等于 0,或者计算 location.x + w
或 location.y + h
导致整数溢出
IllegalArgumentException
- 如果 dataType
不是一个受支持的数据类型,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
NullPointerException
- 如果 dataBuffer
为 nullpublic static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bandMasks, Point location)
dataBuffer
- 包含图像数据的 DataBuffer
w
- 图像数据的像素宽度h
- 图像数据的像素高度scanlineStride
- 图像数据的行跨度bandMasks
- 包含每个 band 项的数组location
- Raster
的左上角
DataBuffer
、宽度、高度、扫描行跨度和 band 掩码的 WritableRaster 对象。
RasterFormatException
- 如果 w
或 h
小于或等于 0,或者计算 location.x + w
或 location.y + h
导致整数溢出
IllegalArgumentException
- 如果 dataType
不是一个受支持的数据类型,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
RasterFormatException
- 如果 dataBuffer
有多个存储单元。
NullPointerException
- 如果 dataBuffer
为 nullpublic static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, int bitsPerPixel, Point location)
dataBuffer
- 包含图像数据的 DataBuffer
w
- 图像数据的像素宽度h
- 图像数据的像素高度bitsPerPixel
- 每像素的位数location
- Raster
的左上角
DataBuffer
、宽度、高度和每像素位数的 WritableRaster 对象。
RasterFormatException
- 如果 w
或 h
小于或等于 0,或者计算 location.x + w
或 location.y + h
导致整数溢出
IllegalArgumentException
- 如果 dataType
不是一个受支持的数据类型,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
RasterFormatException
- 如果 dataBuffer
有多个存储单元。
NullPointerException
- 如果 dataBuffer
为 nullpublic static Raster createRaster(SampleModel sm, DataBuffer db, Point location)
sm
- 指定的 SampleModel
db
- 指定的 DataBuffer
location
- Raster
的左上角
SampleModel
、DataBuffer
和 location 的Raster
。
RasterFormatException
- 如果计算 location.x + sm.getWidth()
或 location.y + sm.getHeight()
导致整数溢出
RasterFormatException
- 如果 dataBuffer
具有多个存储单元并且 sampleModel
是 PixelInterleavedSampleModel、SinglePixelPackedSampleModel 或 MultiPixelPackedSampleModel。
NullPointerException
- 如果 SampleModel 或 DataBuffer 为 nullpublic static WritableRaster createWritableRaster(SampleModel sm, Point location)
sm
- 指定的 SampleModel
location
- WritableRaster
的左上角
SampleModel
和 location 的 WritableRaster
。
RasterFormatException
- 如果计算 location.x + sm.getWidth()
或 location.y + sm.getHeight()
导致整数溢出public static WritableRaster createWritableRaster(SampleModel sm, DataBuffer db, Point location)
sm
- 指定的 SampleModel
db
- 指定的 DataBuffer
location
- WritableRaster
的左上角
SampleModel
、DataBuffer
和 location 的 WritableRaster
。
RasterFormatException
- 如果计算 location.x + sm.getWidth()
或 location.y + sm.getHeight()
导致整数溢出
RasterFormatException
- 如果 dataBuffer
具有多个存储单元并且 sampleModel
是 PixelInterleavedSampleModel、SinglePixelPackedSampleModel 或 MultiPixelPackedSampleModel。
NullPointerException
- 如果 SampleModel 或 DataBuffer 为 nullpublic Raster getParent()
null
。public final int getSampleModelTranslateX()
public final int getSampleModelTranslateY()
public WritableRaster createCompatibleWritableRaster()
WritableRaster
。public WritableRaster createCompatibleWritableRaster(int w, int h)
w
- 新 WritableRaster
的指定宽度h
- 新 WritableRaster
的指定高度
WritableRaster
。
RasterFormatException
- 如果 width 或 height 小于或等于 0。public WritableRaster createCompatibleWritableRaster(Rectangle rect)
rect
- 指定 WritableRaster
的大小和位置的 Rectangle
WritableRaster
。
RasterFormatException
- 如果 rect
的宽度或高度小于或等于零,或者计算 rect.x + rect.width
或 rect.y + rect.height
导致整数溢出
NullPointerException
- 如果 rect 为 null
public WritableRaster createCompatibleWritableRaster(int x, int y, int w, int h)
x, y
- WritableRaster
左上角的坐标w
- WritableRaster
的指定宽度h
- WritableRaster
的指定高度
WritableRaster
。
RasterFormatException
- 如果 w
或 h
小于或等于零,或者计算 x + w
或 y + h
导致整数溢出public Raster createTranslatedChild(int childMinX, int childMinY)
childMinX, childMinY
- 新 Raster
左上角的坐标
Raster
相同大小、SampleModel 和 DataBuffer,但是具有指定位置的 Raster
。
RasterFormatException
- 如果计算 childMinX + this.getWidth()
或 childMinY + this.getHeight()
导致整数溢出public Raster createChild(int parentX, int parentY, int width, int height, int childMinX, int childMinY, int[] bandList)
parentX、parentY、width 和 height 参数在此 Raster 的坐标空间中形成一个 Rectangle,指示要共享的像素区域。如果此 Rectangle 未包含在当前 Raster 的边界内,则抛出错误。
新 Raster 可能被平移到与当前 Raster 所用的不同平面坐标系统中。childMinX 和 childMinY 参数给出了返回的 Raster 左上角像素的新 (x, y) 坐标;新 Raster 中的坐标 (childMinX, childMinY) 将映射到当前 Raster 中与坐标 (parentX, parentY) 相同的像素。
可以定义新 Raster 只包含当前 Raster 的 band 子集,通过 bandList 参数,可以对该子集重新排序。如果 bandList 为 null,则按当前 Raster 的所有 band 的当前顺序,将其全部放入 bandList 中。
要创建一个包含当前 Raster 子区域,但是共享其坐标系统和 band 的新 Raster,应该通过 childMinX(等于 parentX)、childMinY(等于 parentY)和 bandList(等于 null)调用此方法。
parentX, parentY
- 此 Raster 坐标空间中左上角的坐标width
- 从 (parentX, parentY) 开始的区域宽度height
- 从 (parentX, parentY) 开始的区域高度。childMinX, childMinY
- 返回的 Raster 左上角的坐标bandList
- band 索引数组,或者要使用所有 band,则为 null
Raster
。
RasterFormatException
- 如果指定的子区域处于 raster 的边界外。
RasterFormatException
- 如果 width
或 height
小于或等于零,或者计算 parentX + width
、parentY + height
、childMinX + width
或 childMinY + height
导致整数溢出public Rectangle getBounds()
Raster
的边界框。public final int getMinX()
Raster
的最小 x 坐标。public final int getMinY()
Raster
的最小 y 坐标。public final int getWidth()
Raster
的宽度。public final int getHeight()
Raster
的高度。public final int getNumBands()
Raster
的 band 数。public final int getNumDataElements()
public final int getTransferType()
public DataBuffer getDataBuffer()
Raster
的 DataBuffer
。public SampleModel getSampleModel()
Raster
的 SampleModel
。public Object getDataElements(int x, int y, Object outData)
x, y
- 像素位置的坐标outData
- 引用数组的对象,该数组类型由 getTransferType() 定义,长度由 getNumDataElements() 定义。如果为 null,则分配一个适当类型和大小的数组。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内,或者 outData 太小而无法保存输出内容。SampleModel.getDataElements(int, int, Object, DataBuffer)
public Object getDataElements(int x, int y, int w, int h, Object outData)
x, y
- 左上角像素位置的坐标w
- 像素矩形的宽度h
- 像素矩形的高度outData
- 引用数组的对象,该数组类型由 getTransferType() 定义,长度由 w*h*getNumDataElements()定义。如果为 null,则分配一个适当类型和大小的数组。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内,或者 outData 太小而无法保存输出内容。SampleModel.getDataElements(int, int, int, int, Object, DataBuffer)
public int[] getPixel(int x, int y, int[] iArray)
x, y
- 像素位置的坐标iArray
- 一个可选的、预分配的 int 数组
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内,或者 iArray 太小而无法保存输出内容。public float[] getPixel(int x, int y, float[] fArray)
x, y
- 像素位置的坐标fArray
- 一个可选的、预分配的 float 数组
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内,或者 fArray 太小而无法保存输出内容。public double[] getPixel(int x, int y, double[] dArray)
x,y
- 像素位置的坐标dArray
- 一个可选的、预分配的 double 数组
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内,或者 dArray 太小而无法保存输出内容。public int[] getPixels(int x, int y, int w, int h, int[] iArray)
x, y
- 左上角像素位置的坐标w
- 像素矩形的宽度h
- 像素矩形的高度iArray
- 一个可选的、预分配的 int 数组
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内,或者 iArray 太小而无法保存输出内容。public float[] getPixels(int x, int y, int w, int h, float[] fArray)
x, y
- 像素位置的坐标w
- 像素矩形的宽度h
- 像素矩形的高度fArray
- 一个可选的、预分配的 float 数组
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内,或者 fArray 太小而无法保存输出内容。public double[] getPixels(int x, int y, int w, int h, double[] dArray)
x, y
- 左上角像素位置的坐标w
- 像素矩形的宽度h
- 像素矩形的高度dArray
- 一个可选的、预分配的 double 数组
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内,或者 dArray 太小而无法保存输出内容。public int getSample(int x, int y, int b)
x, y
- 像素位置的坐标b
- 要返回的 band
ArrayIndexOutOfBoundsException
- 如果坐标或 band 索引不在边界内。public float getSampleFloat(int x, int y, int b)
x, y
- 像素位置的坐标b
- 要返回的 band
ArrayIndexOutOfBoundsException
- 如果坐标或 band 索引不在边界内。public double getSampleDouble(int x, int y, int b)
x, y
- 像素位置的坐标b
- 要返回的 band
ArrayIndexOutOfBoundsException
- 如果坐标或 band 索引不在边界内。public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray)
x, y
- 左上角像素位置的坐标w
- 像素矩形的宽度h
- 像素矩形的高度b
- 要返回的 bandiArray
- 一个可选的、预分配的 int 数组
ArrayIndexOutOfBoundsException
- 如果坐标或 band 索引不在边界内,或者 iArray 太小而无法保存输出内容。public float[] getSamples(int x, int y, int w, int h, int b, float[] fArray)
x, y
- 左上角像素位置的坐标w
- 像素矩形的宽度h
- 像素矩形的高度b
- 要返回的 bandfArray
- 一个可选的、预分配的 float 数组
ArrayIndexOutOfBoundsException
- 如果坐标或 band 索引不在边界内,或者 fArray 太小而无法保存输出内容。public double[] getSamples(int x, int y, int w, int h, int b, double[] dArray)
x, y
- 左上角像素位置的坐标w
- 像素矩形的宽度h
- 像素矩形的高度b
- 要返回的 bandiArray
- 一个可选的、预分配的 double 数组
ArrayIndexOutOfBoundsException
- 如果坐标或 band 索引不在边界内,或者 dArray 太小而无法保存输出内容。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。