|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.image
类 ComponentSampleModel
java.lang.Object java.awt.image.SampleModel java.awt.image.ComponentSampleModel
-
public class ComponentSampleModel
- extends SampleModel
此类表示按每个像素样本占用 DataBuffer 中一个数据元素的方式存储的图像数据。它可存储 N 个样本,这 N 个样本可通过 N 个独立的数据数组元素组成像素。不同的 band 可能位于 DataBuffer 的不同库中。由于提供了 Accessor 方法,因此可以直接对图像数据进行操作。此类可以支持不同类型的交错,如 band 交错、scanline 交错和像素交错等。像素跨度 (pixel stride) 是同一 scanline 上同一 band 的两个样本之间的数据数组元素数。Scanline 跨度是给定样本与下一 scanline 的同一列中对应样本之间的数据数组元素数。Band 偏移量表示从保持每个 band 的 DataBuffer 库的第一个数据数组元素到 band 的第一个样本之间的数据数组元素数。band 从 0 到 N-1 编号。此类可以表示这样的图像数据:每个样本都可以按 8、16 或 32 位存储无符号整数的数据(分别使用 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
)、每个样本都可以按 16 位存储有符号整数的数据(使用 DataBuffer.TYPE_SHORT
),或者每个样本都是有符号 float 和 double 量的数据(分别使用 DataBuffer.TYPE_FLOAT
或 DataBuffer.TYPE_DOUBLE
)。所有给定的 ComponentSampleModel 样本都是以同样的精度存储的。所有跨度和偏移量必须为非负数。此类支持 TYPE_BYTE
、TYPE_USHORT
、TYPE_SHORT
、TYPE_INT
、TYPE_FLOAT
、TYPE_DOUBLE
。
字段摘要 | |
---|---|
protected int[] |
bandOffsets 数据数组元素中所有 band 的偏移量。 |
protected int[] |
bankIndices 存储图像数据 band 的各库的索引。 |
protected int |
numBands 此 ComponentSampleModel 中的 band 数量。 |
protected int |
numBanks 此 ComponentSampleModel 中的库数量。 |
protected int |
pixelStride 由此 ComponentSampleModel 所描述的图像数据区域的像素跨度(以数据数组元素为单位)。 |
protected int |
scanlineStride 由此 ComponentSampleModel 所描述的图像数据区域的行跨度(以数据数组元素为单位)。 |
从类 java.awt.image.SampleModel 继承的字段 |
---|
dataType, height, width |
构造方法摘要 | |
---|---|
ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets) 构造具有指定参数的 ComponentSampleModel。 |
|
ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bankIndices, int[] bandOffsets) 构造具有指定参数的 ComponentSampleModel。 |
方法摘要 | |
---|---|
SampleModel |
createCompatibleSampleModel(int w, int h) 创建具有指定宽度和高度的 ComponentSampleModel 。 |
DataBuffer |
createDataBuffer() 创建对应于此 ComponentSampleModel 的 DataBuffer 。 |
SampleModel |
createSubsetSampleModel(int[] bands) 创建具有此 ComponentSampleModel 的 band 子集的新 ComponentSampleModel。 |
boolean |
equals(Object o) 指示某个其他对象是否与此对象“相等”。 |
int[] |
getBandOffsets() 返回所有 band 的 band 偏移量。 |
int[] |
getBankIndices() 返回所有 band 的库索引。 |
Object |
getDataElements(int x, int y, Object obj, DataBuffer data) 以 TransferType 类型的基本数组形式返回单个像素的数据。 |
int |
getNumDataElements() 返回使用 getDataElements(int, int, Object, DataBuffer) 和 setDataElements(int, int, Object, DataBuffer) 方法传输像素所需的数据元素的数量。 |
int |
getOffset(int x, int y) 获取像素 (x,y) 的第一个 band 的偏移量。 |
int |
getOffset(int x, int y, int b) 获取像素 (x,y) 的 band b 的偏移量。 |
int[] |
getPixel(int x, int y, int[] iArray, DataBuffer data) 返回 int 数组中指定像素的所有样本(每个数组元素一个样本)。 |
int[] |
getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data) 返回 int 数组中像素的指定矩形区域的所有样本(每个数组元素一个样本)。 |
int |
getPixelStride() 返回此 ComponentSampleModel 的像素跨度。 |
int |
getSample(int x, int y, int b, DataBuffer data) 以 int 类型返回位于 (x,y) 处像素的指定 band 中的样本。 |
double |
getSampleDouble(int x, int y, int b, DataBuffer data) 针对 (x,y) 处的像素,返回指定 band 中样本的 double 值。 |
float |
getSampleFloat(int x, int y, int b, DataBuffer data) 以 float 类型返回位于 (x,y) 处像素的指定 band 中的样本。 |
int[] |
getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data) 针对一个 int 数组中指定的像素矩形,返回指定 band 中的样本,每个数据数组元素对应一个样本。 |
int[] |
getSampleSize() 返回所有 band 的每样本的位数。 |
int |
getSampleSize(int band) 返回指定 band 的每样本位数。 |
int |
getScanlineStride() 返回此 ComponentSampleModel 的 scanline 跨度。 |
int |
hashCode() 返回该对象的哈希码值。 |
void |
setDataElements(int x, int y, Object obj, DataBuffer data) 从 TransferType 类型的基本数组设置指定 DataBuffer 中单个像素的数据。 |
void |
setPixel(int x, int y, int[] iArray, DataBuffer data) 使用输入样本的 int 数组设置 DataBuffer 中的像素。 |
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 中的样本。 |
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, int[] iArray, DataBuffer data) 根据为每个数据数组元素包含一个样本的 int 数组,设置指定像素矩形的指定 band 中的样本。 |
从类 java.awt.image.SampleModel 继承的方法 |
---|
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamples |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
bandOffsets
protected int[] bandOffsets
-
数据数组元素中所有 band 的偏移量。
bankIndices
protected int[] bankIndices
-
存储图像数据 band 的各库的索引。
numBands
protected int numBands
-
此
ComponentSampleModel
中的 band 数量。
numBanks
protected int numBanks
-
此
ComponentSampleModel
中的库数量。
scanlineStride
protected int scanlineStride
-
由此 ComponentSampleModel 所描述的图像数据区域的行跨度(以数据数组元素为单位)。
pixelStride
protected int pixelStride
-
由此 ComponentSampleModel 所描述的图像数据区域的像素跨度(以数据数组元素为单位)。
构造方法详细信息 |
---|
ComponentSampleModel
public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets)
-
构造具有指定参数的 ComponentSampleModel。band 数量将由 bandOffsets 数组的长度给定。所有 band 都将存储在 DataBuffer 的第一个库中。
- 参数:
-
dataType
- 存储样本的数据类型 -
w
- 描述的图像数据区域的宽度(以像素为单位) -
h
- 描述的图像数据区域的高度(以像素为单位) -
pixelStride
- 描述的图像数据区域的像素跨度 -
scanlineStride
- 描述的图像数据区域的行跨度 -
bandOffsets
- 所有 band 的偏移量 - 抛出:
-
IllegalArgumentException
- 如果w
或h
不大于 0 -
IllegalArgumentException
- 如果pixelStride
小于 0 -
IllegalArgumentException
- 如果scanlineStride
小于 0 -
IllegalArgumentException
- 如果numBands
小于 1 -
IllegalArgumentException
- 如果w
和h
的乘积大于Integer.MAX_VALUE
-
IllegalArgumentException
- 如果dataType
不是受支持的数据类型之一
ComponentSampleModel
public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bankIndices, int[] bandOffsets)
-
构造具有指定参数的 ComponentSampleModel。band 数量将由 bandOffsets 数组的长度给定。不同的 band 可能存储在 DataBuffer 的不同库中。
- 参数:
-
dataType
- 存储样本的数据类型 -
w
- 描述的图像数据区域的宽度(以像素为单位) -
h
- 描述的图像数据区域的高度(以像素为单位) -
pixelStride
- 描述的图像数据区域的像素跨度 -
scanlineStride
- 描述的图像数据区域的行跨度 -
bankIndices
- 所有 band 的库索引 -
bandOffsets
- 所有 band 的 band 偏移量 - 抛出:
-
IllegalArgumentException
- 如果w
或h
不大于 0 -
IllegalArgumentException
- 如果pixelStride
小于 0 -
IllegalArgumentException
- 如果scanlineStride
小于 0 -
IllegalArgumentException
- 如果bankIndices
的长度不等于bankOffsets
的长度 -
IllegalArgumentException
- 如果bandIndices
的 band 索引中任何一项小于 0 -
IllegalArgumentException
- 如果dataType
不是受支持的数据类型之一
方法详细信息 |
---|
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
-
创建具有指定宽度和高度的
ComponentSampleModel
。新的SampleModel
将有与此SampleModel
相同的 band 数量、存储数据类型、交错方案和像素跨度。 -
- 指定者:
-
类
SampleModel
中的createCompatibleSampleModel
-
- 参数:
-
w
- 得到的SampleModel
的宽度 -
h
- 得到的SampleModel
的高度 - 返回:
-
具有指定大小的
ComponentSampleModel
- 抛出:
-
IllegalArgumentException
- 如果w
或h
不大于 0