|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.image
类 SampleModel
java.lang.Object java.awt.image.SampleModel
-
public abstract class SampleModel
- extends Object
此抽象类定义了一个提取图像像素样本的接口。所有图像数据都被表示成一个像素集合。每个像素都由许多样本组成。样本是一个图像 band 的基本数据,band 由图像中某一特定类型的所有样本组成。例如,一个像素可能包含三个样本,分别表示红、绿、蓝的分量。在包含此相素的图像中有三个 band。其中一个 band 由图像中所有像素的红色样本组成。第二个 band 由所有绿色样本组成,第三个 band 由所有蓝色样本组成。像素可以以各种格式存储。例如,特定 band 中的所有样本可以连续存储,或者单个像素的所有样本可以连续存储。
SampleModel 的子类指定它们能够表示的样本类型(例如,无符号 8 位字节、有符号 16 位 short 型等),并且可以指定如何在存储器中组织样本。在 Java 2D(tm) API 中,内置的图像处理运算符可能无法处理所有可能的样本类型,但通常可以处理 16 位或 16 位以下的无符号整数样本。某些运算符支持更大范围的样本类型。
像素的集合被表示为一个 Raster,它由 DataBuffer 和 SampleModel 组成。SampleModel 允许访问 DataBuffer 中的样本,并提供程序员可以用来直接操作 DataBuffer 中样本和像素的低级别信息。
此类通常是处理图像的一个回调方法。更为有效的代码将 SampleModel 强行转换为适当的子类,并提取直接操作 DataBuffer 中的像素所需的信息。
- 另请参见:
-
DataBuffer
,Raster
,ComponentSampleModel
,PixelInterleavedSampleModel
,BandedSampleModel
,MultiPixelPackedSampleModel
,SinglePixelPackedSampleModel
字段摘要 | |
---|---|
protected int |
dataType 存储像素数据的 DataBuffer 的数据类型。 |
protected int |
height 此 SampleModel 描述的图像数据区域的像素高度。 |
protected int |
numBands 此 SampleModel 描述的图像数据的 band 数。 |
protected int |
width 此 SampleModel 描述的图像数据区域的像素宽度。 |
构造方法摘要 | |
---|---|
SampleModel(int dataType, int w, int h, int numBands) 构造一个具有指定参数的 SampleModel。 |
方法摘要 | |
---|---|
abstract SampleModel |
createCompatibleSampleModel(int w, int h) 创建一个用此 SampleModel 的格式描述数据但宽度和高度不同的 SampleModel。 |
abstract DataBuffer |
createDataBuffer() 创建一个对应于此 SampleModel 的 DataBuffer。 |
abstract SampleModel |
createSubsetSampleModel(int[] bands) 创建一个新 SampleModel,它具有此 SampleModel 的 band 子集。 |
Object |
getDataElements(int x, int y, int w, int h, Object obj, DataBuffer data) 返回 TransferType 类型基本数组中指定像素矩形的像素数据。 |
abstract Object |
getDataElements(int x, int y, Object obj, DataBuffer data) 返回 TransferType 类型的基本数组中单个像素的数据。 |
int |
getDataType() 返回存储像素数据的 DataBuffer 的数据类型。 |
int |
getHeight() 返回像素高度。 |
int |
getNumBands() 返回图像数据的总 band 数。 |
abstract int |
getNumDataElements() 返回通过 getDataElements 和 setDataElements 方法传输一个像素所需的数据元素数。 |
double[] |
getPixel(int x, int y, double[] dArray, DataBuffer data) 在一个 double 数组中返回指定像素的样本。 |
float[] |
getPixel(int x, int y, float[] fArray, DataBuffer data) 在一个 float 数组中返回指定像素的样本。 |
int[] |
getPixel(int x, int y, int[] iArray, DataBuffer data) 在一个 int 数组中返回指定像素的样本,每个数组元素一个样本。 |
double[] |
getPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data) 在一个 double 数组中返回像素矩形的所有样本,每个数组元素一个样本。 |
float[] |
getPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data) 在一个 float 数组中返回像素矩形的所有样本,每个数组元素一个样本。 |
int[] |
getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data) 在一个 int 数组中返回像素矩形的所有样本,每个数组元素一个样本。 |
abstract int |
getSample(int x, int y, int b, DataBuffer data) 以 int 形式返回 (x,y) 处像素的指定 band 中的样本。 |
double |
getSampleDouble(int x, int y, int b, DataBuffer data) 以 double 形式返回 (x,y) 处像素的指定 band 中的样本。 |
float |
getSampleFloat(int x, int y, int b, DataBuffer data) 以 float 形式返回 (x,y) 处像素的指定 band 中的样本。 |
double[] |
getSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data) 在一个 double 数组中返回指定像素矩形的指定 band 的样本,每个数组元素一个样本。 |
float[] |
getSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data) 在一个 float 数组中返回指定像素矩形的指定 band 的样本,每个数组元素一个样本。 |
int[] |
getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data) 在一个 int 数组中返回指定像素矩形的指定 band 的样本,每个数组元素一个样本。 |
abstract int[] |
getSampleSize() 返回所有 band 样本(以位为单位)的大小。 |
abstract int |
getSampleSize(int band) 返回指定 band 样本(以位为单位)的大小。 |
int |
getTransferType() 返回通过 getDataElements 和 setDataElements 方法传输像素所使用的 TransferType。 |
int |
getWidth() 返回像素宽度。 |
void |
setDataElements(int x, int y, int w, int h, Object obj, DataBuffer data) 根据 TransferType 类型的基本数组设置指定 DataBuffer 中像素矩形的数据。 |
abstract void |
setDataElements(int x, int y, Object obj, DataBuffer data) 根据 TransferType 类型的基本数组设置指定 DataBuffer 中单个像素的数据。 |
void |
setPixel(int x, int y, double[] dArray, DataBuffer data) 使用输入样本的 double 数组设置 DataBuffer 中的像素。 |
void |
setPixel(int x, int y, float[] fArray, DataBuffer data) 使用输入样本的 float 数组设置 DataBuffer 中的像素。 |
void |
setPixel(int x, int y, int[] iArray, DataBuffer data) 使用输入样本的 int 数组设置 DataBuffer 中的像素。 |
void |
setPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data) 根据为每个数组元素包含一个样本的 double 数组设置像素矩形的所有样本。 |
void |
setPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data) 根据为每个数组元素包含一个样本的 float 数组设置像素矩形的所有样本。 |
void |
setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data) 根据为每个数组元素包含一个样本的 int 数组设置像素矩形的所有样本。 |
void |
setSample(int x, int y, int b, double s, DataBuffer data) 使用输入的 double 设置 DataBuffer 中 (x,y) 处像素的指定 band 中的样本。 |
void |
setSample(int x, int y, int b, float s, DataBuffer data) 使用输入的 float 设置 DataBuffer 中 (x,y) 处像素的指定 band 中的样本。 |
abstract void |
setSample(int x, int y, int b, int s, DataBuffer data) 使用输入的 int 设置 DataBuffer 中 (x,y) 处像素的指定 band 中的样本。 |
void |
setSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data) 根据为每个数组元素包含一个样本的 double 数组设置指定像素矩形的指定 band 中的样本。 |
void |
setSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data) 根据为每个数组元素包含一个样本的 float 数组设置指定像素矩形的指定 band 中的样本。 |
void |
setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data) 根据为每个数组元素包含一个样本的 int 数组设置指定像素矩形的指定 band 中的样本。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
width
protected int width
-
此 SampleModel 描述的图像数据区域的像素宽度。
height
protected int height
-
此 SampleModel 描述的图像数据区域的像素高度。
numBands
protected int numBands
-
此 SampleModel 描述的图像数据的 band 数。
dataType
protected int dataType
-
存储像素数据的 DataBuffer 的数据类型。
- 另请参见:
-
DataBuffer
构造方法详细信息 |
---|
SampleModel
public SampleModel(int dataType, int w, int h, int numBands)
-
构造一个具有指定参数的 SampleModel。
- 参数:
-
dataType
- 存储像素数据的 DataBuffer 的数据类型。 -
w
- 图像数据区域的(像素)宽度。 -
h
- 图像数据区域的(像素)高度。 -
numBands
- 图像数据的 band 数。 - 抛出:
-
IllegalArgumentException
- 如果w
或h
不大于 0 -
IllegalArgumentException
- 如果w
和h
所产生的结果大于Integer.MAX_VALUE
-
IllegalArgumentException
- 如果dataType
不是受支持的数据类型之一
方法详细信息 |
---|
getWidth
public final int getWidth()
- 返回像素宽度。
-
- 返回:
-
此
SampleModel
描述的图像数据区域的像素宽度。
getHeight
public final int getHeight()
- 返回像素高度。
-
- 返回:
-
此
SampleModel
描述的图像数据区域的像素高度。
getNumBands
public final int getNumBands()
- 返回图像数据的总 band 数。
-
- 返回:
-
此
SampleModel
描述的图像数据的 band 数。
getNumDataElements
public abstract int getNumDataElements()
- 返回通过 getDataElements 和 setDataElements 方法传输一个像素所需的数据元素数。当通过这些方法传输像素时,可以以压缩或非压缩格式传输它们,这取决于 SampleModel 的实现。使用这些方法,像素就可以以具有 getTransferType() 给出的基本类型的 getNumDataElements() 元素数组的格式进行传输。TransferType 可以与 DataType 的存储数据类型相同,也可以不同。