|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.image
类 SinglePixelPackedSampleModel
java.lang.Object java.awt.image.SampleModel java.awt.image.SinglePixelPackedSampleModel
-
public class SinglePixelPackedSampleModel
- extends SampleModel
此类表示压缩的像素数据:将 N 个样本组成的单个像素存储在单个数据数组元素中,每个数据数组元素只保存一个像素的样本。此类支持 TYPE_BYTE
、TYPE_USHORT
和 TYPE_INT
数据类型。所有数据数组元素都位于 DataBuffer 的第一个存储单元中。该类提供了一些存取器方法,以便直接操作图像数据。扫描行跨距是给定样本和下一个扫描行同一列中对应样本之间的数据数组元素的数量。位掩码是提取表示像素 band 的样本所需的掩码。位偏移量是表示像素 band 的样本的数据数组元素中位的偏移量。
以下代码阐释了如何从 DataBuffer data
中提取表示像素 x,y
的 band b
的样本位:
int sample = data.getElem(y * scanlineStride + x); sample = (sample & bitMasks[b]) >>> bitOffsets[b];
字段摘要 |
---|
从类 java.awt.image.SampleModel 继承的字段 |
---|
dataType, height, numBands, width |
构造方法摘要 | |
---|---|
SinglePixelPackedSampleModel(int dataType, int w, int h, int[] bitMasks) 构造一个具有 bitMasks.length band 的 SinglePixelPackedSampleModel。 |
|
SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bitMasks) 构造一个 SinglePixelPackedSampleModel,它具有 bitMasks.length band,并且扫描行跨距等于 scanlineStride 数据数组元素。 |
方法摘要 | |
---|---|
SampleModel |
createCompatibleSampleModel(int w, int h) 创建一个具有指定宽度和高度的新 SinglePixelPackedSampleModel。 |
DataBuffer |
createDataBuffer() 创建一个对应于此 SinglePixelPackedSampleModel 的 DataBuffer。 |
SampleModel |
createSubsetSampleModel(int[] bands) 创建一个新 SinglePixelPackedSampleModel,它具有此 SinglePixelPackedSampleModel 的 band 子集。 |
boolean |
equals(Object o) 指示某个其他对象是否与此对象“相等”。 |
int[] |
getBitMasks() 返回所有 band 的位掩码。 |
int[] |
getBitOffsets() 返回表示所有 band 的一个像素的数据数组元素中的位偏移量。 |
Object |
getDataElements(int x, int y, Object obj, DataBuffer data) 返回 TransferType 类型的基本数组中单个像素的数据。 |
int |
getNumDataElements() 返回通过 getDataElements 和 setDataElements 方法传输一个像素所需的数据元素数。 |
int |
getOffset(int x, int y) 返回像素 (x,y)(在数据数组元素中)的偏移量。 |
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 |
getSample(int x, int y, int b, DataBuffer data) 以 int 形式返回 (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() 返回此 SinglePixelPackedSampleModel 的扫描行跨距。 |
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, 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, getSampleDouble, getSampleFloat, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSample, setSample, setSamples, setSamples |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
SinglePixelPackedSampleModel
public SinglePixelPackedSampleModel(int dataType, int w, int h, int[] bitMasks)
-
构造一个具有 bitMasks.length band 的 SinglePixelPackedSampleModel。每个样本都存储在数据数组元素中其对应位掩码的位置处。每个位掩码必须是邻接的且掩码不能重叠。
- 参数:
-
dataType
- 存储样本使用的数据类型。 -
w
- 所描述的图像数据区域的(像素)宽度。 -
h
- 所描述的图像数据区域的(像素)高度。 -
bitMasks
- 所有 band 的位掩码。 - 抛出:
-
IllegalArgumentException
- 如果dataType
不是DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或DataBuffer.TYPE_INT
SinglePixelPackedSampleModel
public SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bitMasks)
-
构造一个 SinglePixelPackedSampleModel,它具有 bitMasks.length band,并且扫描行跨距等于 scanlineStride 数据数组元素。每个样本都存储在数据数组元素中其对应位掩码的位置处。每个位掩码必须是邻接的且掩码不能重叠。
- 参数:
-
dataType
- 存储样本使用的数据类型。 -
w
- 所描述的图像数据区域的(像素)宽度。 -
h
- 所描述的图像数据区域的(像素)高度。 -
scanlineStride
- 图像数据的行跨距。 -
bitMasks
- 所有 band 的位掩码。 - 抛出:
-
IllegalArgumentException
- 如果w
或h
不大于 0 -
IllegalArgumentException
- 如果bitMask
中的任何掩码不相邻 -
IllegalArgumentException
- 如果dataType
不是DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或DataBuffer.TYPE_INT
方法详细信息 |
---|
getNumDataElements
public int getNumDataElements()
- 返回通过 getDataElements 和 setDataElements 方法传输一个像素所需的数据元素数。对于 SinglePixelPackedSampleModel,此元素数为 1。
-
- 指定者:
-
类
SampleModel
中的getNumDataElements
-
- 返回:
- 数据元素的数量。
- 另请参见:
-
SampleModel.getDataElements(int, int, Object, DataBuffer)
,SampleModel.getDataElements(int, int, int, int, Object, DataBuffer)
,SampleModel.setDataElements(int, int, Object, DataBuffer)
,SampleModel.setDataElements(int, int, int, int, Object, DataBuffer)
,SampleModel.getTransferType()
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
- 创建一个具有指定宽度和高度的新 SinglePixelPackedSampleModel。新 SinglePixelPackedSampleModel 的存储数据类型和位掩码与此 SinglePixelPackedSampleModel 相同。
-
- 指定者:
-
类
SampleModel
中的createCompatibleSampleModel
-
- 参数:
-
w
- 得到的SampleModel
的宽度 -
h
- 得到的SampleModel
的高度 - 返回:
-
具有指定宽度和高度的
SinglePixelPackedSampleModel
。 - 抛出:
-
IllegalArgumentException
- 如果w
或h
不大于 0
createDataBuffer
public DataBuffer createDataBuffer()
- 创建一个对应于此 SinglePixelPackedSampleModel 的 DataBuffer。DataBuffer 的数据类型和大小将与此 SinglePixelPackedSampleModel 一致。DataBuffer 只有一个存储单元。
-
- 指定者:
-
类
SampleModel
中的createDataBuffer
-
- 返回:
-
对应于此
SampleModel
的DataBuffer
。
getSampleSize
public int[] getSampleSize()
- 返回所有 band 的每个样本的位数。
-
- 指定者:
-
类
SampleModel
中的getSampleSize
-
- 返回:
- 所有 band 样本的大小。
getSampleSize
public int getSampleSize(int band)
- 返回指定 band 的每个样本的位数。
-
- 指定者:
-
类
SampleModel
中的getSampleSize
-
- 参数:
-
band
- 指定的 band - 返回:
- 指定 band 样本的大小。
getOffset
public int getOffset(int x, int y)
-
返回像素 (x,y)(在数据数组元素中)的偏移量。包含像素
x,y
的数据元素可以使用 SinglePixelPackedSampleModelsppsm
从 DataBufferdata
中检索:data.getElem(sppsm.getOffset(x, y));
-
- 参数:
-
x, y
- 指定像素的坐标 - 返回:
- 指定像素的偏移量。