|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.image
类 Raster
java.lang.Object java.awt.image.Raster
- 直接已知子类:
- WritableRaster
-
public class Raster
- extends Object
表示像素矩形数组的类。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 |
字段详细信息 |
---|
sampleModel
protected SampleModel sampleModel
-
描述此 Raster 的像素在 DataBuffer 中的存储方式的 SampleModel。
dataBuffer
protected DataBuffer dataBuffer
-
存储图像数据的 DataBuffer。
minX
protected int minX
-
此 Raster 左上角像素的 X 坐标。
minY
protected int minY
-
此 Raster 左上角像素的 Y 坐标。
width
protected int width
-
此 Raster 的宽度。
height
protected int height
-
此 Raster 的高度。
sampleModelTranslateX
protected int sampleModelTranslateX
-
从 Raster 的 SampleModel 坐标空间到该 Raster 坐标空间的 X 平移。