|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.image
类 MultiPixelPackedSampleModel
java.lang.Object java.awt.image.SampleModel java.awt.image.MultiPixelPackedSampleModel
-
public class MultiPixelPackedSampleModel
- extends SampleModel
MultiPixelPackedSampleModel
类表示一个 band 的图像,并且能够将多个单采样像素打包到一个数据元素中。不允许像素跨越数据元素。数据类型可以是 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 或 DataBuffer.TYPE_INT。每个像素的位数必须是 2 的某次幂,并且一个数据元素中放入的像素数必须正好也是 2 的某次幂。像素位的跨度等于每个像素的位数。扫描行的跨度在数据元素中,最后几个数据元素可以由未使用的像素填充。数据位的偏移量是从 DataBuffer
的开始到首个像素的位偏移量,并且必须是像素位跨度的倍数。
下面的代码说明了如何从 DataBuffer
data
中提取像素 x, y
的各位并将像素数据存储到 dataType
类型的数据元素中:
int dataElementSize = DataBuffer.getDataTypeSize(dataType); int bitnum = dataBitOffset + x*pixelBitStride; int element = data.getElem(y*scanlineStride + bitnum/dataElementSize); int shift = dataElementSize - (bitnum & (dataElementSize-1)) - pixelBitStride; int pixel = (element >> shift) & ((1 << pixelBitStride) - 1);
字段摘要 |
---|
从类 java.awt.image.SampleModel 继承的字段 |
---|
dataType, height, numBands, width |
构造方法摘要 | |
---|---|
MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits) 构造一个具有指定数据类型、宽度、高度和每个像素位数的 MultiPixelPackedSampleModel 。 |
|
MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits, int scanlineStride, int dataBitOffset) 构造一个具有指定数据类型、宽度、高度、每个像素的位数、扫描行跨度和数据位偏移量的 MultiPixelPackedSampleModel 。 |
方法摘要 | |
---|---|
SampleModel |
createCompatibleSampleModel(int w, int h) 构造一个具有指定宽度和高度的新 MultiPixelPackedSampleModel 。 |
DataBuffer |
createDataBuffer() 创建一个与此 MultiPixelPackedSampleModel 对应的 DataBuffer 。 |
SampleModel |
createSubsetSampleModel(int[] bands) 创建一个具有此 MultiPixelPackedSampleModel 的 band 子集的新 MultiPixelPackedSampleModel 。 |
boolean |
equals(Object o) 指示某个其他对象是否与此对象“相等”。 |
int |
getBitOffset(int x) 返回数据元素中存储扫描行第 x 个像素的偏移量(以位为单位)。 |
int |
getDataBitOffset() 返回数据位的偏移量(以位为单位)。 |
Object |
getDataElements(int x, int y, Object obj, DataBuffer data) 以 TransferType 类型的基本数组形式返回单个像素的数据。 |
int |
getNumDataElements() 返回通过 getDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer) 和 setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer) 方法传输一个像素所需的数据元素数。 |
int |
getOffset(int x, int y) 返回数据数组元素中像素 (x, y) 的偏移量。 |
int[] |
getPixel(int x, int y, int[] iArray, DataBuffer data) 返回 int 数组首个元素中的指定单个 band 像素。 |
int |
getPixelBitStride() 返回像素位跨度,以位为单位。 |
int |
getSample(int x, int y, int b, DataBuffer data) 返回以 int 表示的、像素 (x, y) 指定 band 中的采样。 |
int[] |
getSampleSize() 返回所有 band 每个采样的位数。 |
int |
getSampleSize(int band) 返回指定 band 每个采样的位数。 |
int |
getScanlineStride() 返回扫描行的跨度。 |
int |
getTransferType() 返回通过 getDataElements 和 setDataElements 方法传输像素所使用的 TransferType。 |
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 |
setSample(int x, int y, int b, int s, DataBuffer data) 使用输入的 int ,设置 DataBuffer 中位于 (x,y) 的像素的指定 band 中的采样。 |
从类 java.awt.image.SampleModel 继承的方法 |
---|
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getPixels, getSampleDouble, getSampleFloat, getSamples, getSamples, getSamples, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setPixels, setSample, setSample, setSamples, setSamples, setSamples |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
MultiPixelPackedSampleModel
public MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits)
-
构造一个具有指定数据类型、宽度、高度和每个像素位数的
MultiPixelPackedSampleModel
。- 参数:
-
dataType
- 存储采样的数据类型 -
w
- 所描述的图像数据区域的宽度,以像素为单位 -
h
- 所描述的图像数据区域的高度,以像素为单位 -
numberOfBits
- 每个像素的位数 - 抛出:
-
IllegalArgumentException
- 如果dataType
不是DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或DataBuffer.TYPE_INT
之一
MultiPixelPackedSampleModel
public MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits, int scanlineStride, int dataBitOffset)
-
构造一个具有指定数据类型、宽度、高度、每个像素的位数、扫描行跨度和数据位偏移量的
MultiPixelPackedSampleModel
。- 参数:
-
dataType
- 存储采用的数据类型 -
w
- 所描述的图像数据区域的宽度,以像素为单位 -
h
- 所描述的图像数据区域的高度,以像素为单位 -
numberOfBits
- 每个像素的位数 -
scanlineStride
- 图像数据的行跨度 -
dataBitOffset
- 所描述的图像数据区域的数据位偏移量 - 抛出:
-
RasterFormatException
- 如果每个像素的位数不是 2 的某次幂,或者一个数据元素中放入的像素数不是 2 的某次幂。 -
IllegalArgumentException
- 如果w
或h
不大于 0 -
IllegalArgumentException
- 如果dataType
不是DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或DataBuffer.TYPE_INT
之一
方法详细信息 |
---|
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
-
构造一个具有指定宽度和高度的新
MultiPixelPackedSampleModel
。这个新的MultiPixelPackedSampleModel
具有和此MultiPixelPackedSampleModel
相同的存储数据类型和每像素位数。 -
- 指定者:
-
类
SampleModel
中的createCompatibleSampleModel
-
- 参数:
-
w
- 指定的宽度 -
h
- 指定的高度 - 返回:
-
具有指定宽度和高度,并且具有与此
MultiPixelPackedSampleModel
相同的存储数据类型和每像素位数的SampleModel
。 - 抛出:
-
IllegalArgumentException
- 如果w
或h
不大于 0
createDataBuffer
public DataBuffer createDataBuffer()
-
创建一个与此
MultiPixelPackedSampleModel
对应的DataBuffer
。该DataBuffer
对象的数据类型和大小与此MultiPixelPackedSampleModel
一致。DataBuffer
具有单个存储单元。 -
- 指定者:
-
类
SampleModel
中的createDataBuffer
-
- 返回:
-
具有与此
MultiPixelPackedSampleModel
相同的数据类型和大小的DataBuffer
。
getNumDataElements
public int getNumDataElements()
-
返回通过
getDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
和setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
方法传输一个像素所需的数据元素数。对于MultiPixelPackedSampleModel
,该值是一。 -
- 指定者:
-
类
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()
getSampleSize
public int[] getSampleSize()
- 返回所有 band 每个采样的位数。
-
- 指定者:
-
类
SampleModel
中的getSampleSize
-
- 返回:
- 每个采样的位数。
getSampleSize
public int getSampleSize(int band)
- 返回指定 band 每个采样的位数。
-
- 指定者:
-
类
SampleModel
中的getSampleSize
-
- 参数:
-
band
- 指定的 band - 返回:
- 指定 band 每个采样的位数。
getOffset
public int getOffset(int x, int y)
- 返回数据数组元素中像素 (x, y) 的偏移量。
-
- 参数:
-
x, y
- 指定的像素 - 返回:
- 指定像素的偏移量。