public final class BandedSampleModel extends ComponentSampleModel
TYPE_BYTE
, TYPE_USHORT
, TYPE_SHORT
, TYPE_INT
, TYPE_FLOAT
和TYPE_DOUBLE
个数据类型
bandOffsets, bankIndices, numBands, numBanks, pixelStride, scanlineStride
dataType, height, width
Constructor and Description |
---|
BandedSampleModel(int dataType, int w, int h, int numBands)
构造带指定参数的BandedSampleModel。
|
BandedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets)
构造带指定参数的BandedSampleModel。
|
Modifier and Type | Method and Description |
---|---|
SampleModel |
createCompatibleSampleModel(int w, int h)
创建一个带有指定宽度和高度的新的BandedSampleModel。
|
DataBuffer |
createDataBuffer()
创建对应于此BandedSampleModel的DataBuffer,DataBuffer的数据类型,数量和大小将与此BandedSampleModel一致。
|
SampleModel |
createSubsetSampleModel(int[] bands)
创建一个带有BandedSampleModel的带子集的新BandedSampleModel。
|
Object |
getDataElements(int x, int y, Object obj, DataBuffer data)
返回TransferType类型的原始数组中单个像素的数据。
|
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)
返回为位于(x,y)处的像素的指定带中的样本int。
|
double |
getSampleDouble(int x, int y, int b, DataBuffer data)
将位于(x,y)的像素的指定带中的样本返回为双倍。
|
float |
getSampleFloat(int x, int y, int b, DataBuffer data)
将位于(x,y)处的像素的指定带中的样本作为浮点返回。
|
int[] |
getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
返回int数组中指定的像素矩形的指定带中的样本,每个数据数组元素一个样本。
|
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)
对于位于DataBuffer中(x,y)处的像素的指定带中的样本,使用双倍的输入。
|
void |
setSample(int x, int y, int b, float s, DataBuffer data)
使用浮点数为DataBuffer设置位于(x,y)处的像素的指定波段的样本。
|
void |
setSample(int x, int y, int b, int s, DataBuffer data)
使用int作为输入,为DataBuffer中位于(x,y)处的像素的指定波段设置一个样本。
|
void |
setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
从包含每个数据数组元素一个样本的int数组中为指定的像素矩形设置样本。
|
equals, getBandOffsets, getBankIndices, getNumDataElements, getOffset, getOffset, getPixelStride, getSampleSize, getSampleSize, getScanlineStride
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamples
public BandedSampleModel(int dataType, int w, int h, int numBands)
dataType
- 存储样本的数据类型。
w
- 描述的图像数据区域的宽度(以像素为单位)。
h
- 描述的图像数据区域的高度(以像素为单位)。
numBands
- 图像数据的频带数。
IllegalArgumentException
- 如果
dataType
不是支持的数据类型之一
public BandedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets)
dataType
- 存储样本的数据类型。
w
- 描述的图像数据区域的宽度(以像素为单位)。
h
- 描述的图像数据区域的高度(以像素为单位)。
scanlineStride
- 图像数据的行
scanlineStride
。
bankIndices
- 每个乐队的银行指数。
bandOffsets
- 每个乐队的乐队偏移。
IllegalArgumentException
- 如果
dataType
不是支持的数据类型之一
public SampleModel createCompatibleSampleModel(int w, int h)
createCompatibleSampleModel
在类别
ComponentSampleModel
w
-所得的宽度
BandedSampleModel
h
-所得的高度
BandedSampleModel
BandedSampleModel
具有指定的宽度和高度。
IllegalArgumentException
- 如果
w
或
h
等于
Integer.MAX_VALUE
或
Integer.MIN_VALUE
IllegalArgumentException
- 如果
dataType
不是支持的数据类型之一
public SampleModel createSubsetSampleModel(int[] bands)
createSubsetSampleModel
在类别
ComponentSampleModel
bands
- 这个
ComponentSampleModel
一个子带
ComponentSampleModel
创建与这个
ComponentSampleModel
集。
RasterFormatException
- 如果频带数量大于此样本模型中的数据块数量。
IllegalArgumentException
- 如果
dataType
不是支持的数据类型之一
public DataBuffer createDataBuffer()
createDataBuffer
在
ComponentSampleModel
DataBuffer
的数据类型,库数和大小与此
ComponentSampleModel
。
IllegalArgumentException
- 如果
dataType
不是支持的类型之一。
public Object getDataElements(int x, int y, Object obj, DataBuffer data)
以下代码说明了从DataBuffer db1
(其存储布局由BandedSampleModel bsm1
)传送到DataBuffer db2
的一个像素的数据,DataBuffer db2
的存储布局由BandedSampleModel bsm2
。 传输通常比使用getPixel / setPixel更有效率。
BandedSampleModel bsm1, bsm2;
DataBufferInt db1, db2;
bsm2.setDataElements(x, y, bsm1.getDataElements(x, y, null, db1),
db2);
如果SampleModels具有相同数量的频带,则使用getDataElements / setDataElements在两个DataBuffer / SampleModel对之间传输是合法的,相应的频带具有与每个样本相同的位数,TransferTypes是相同的。
如果obj不为空,则它应该是TransferType类型的原始数组。 否则,抛出ClassCastException。 如果坐标不在边界中,或者如果obj不为空且不够大以容纳像素数据,则可能抛出ArrayIndexOutOfBoundsException。
getDataElements
在类别
ComponentSampleModel
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
obj
- 如果非空,则返回像素数据的原始数组。
data
- 包含图像数据的DataBuffer。
setDataElements(int, int, Object, DataBuffer)
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
getPixel
在
ComponentSampleModel
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
iArray
- 如果非空,则返回此数组中的样本
data
- 包含图像数据的DataBuffer
setPixel(int, int, int[], DataBuffer)
public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
getPixels
在
ComponentSampleModel
x
- 左上角像素位置的X坐标
y
- 左上角像素位置的Y坐标
w
- 像素矩形的宽度
h
- 像素矩形的高度
iArray
- 如果非空,则返回此数组中的样本
data
- 含有图像数据的DataBuffer
setPixels(int, int, int, int, int[], DataBuffer)
public int getSample(int x, int y, int b, DataBuffer data)
getSample
在类别
ComponentSampleModel
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
b
- 乐队返回
data
- 包含图像数据的DataBuffer
setSample(int, int, int, int, DataBuffer)
public float getSampleFloat(int x, int y, int b, DataBuffer data)
getSampleFloat
在类别
ComponentSampleModel
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
b
- 乐队回来
data
- 包含图像数据的DataBuffer
public double getSampleDouble(int x, int y, int b, DataBuffer data)
getSampleDouble
在类别
ComponentSampleModel
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
b
- 乐队返回
data
- 包含图像数据的DataBuffer
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
getSamples
在类别
ComponentSampleModel
x
- 左上角像素位置的X坐标
y
- 左上角像素位置的Y坐标
w
- 像素矩形的宽度
h
- 像素矩形的高度
b
- 乐队返回
iArray
- 如果非空,则返回此数组中的样本
data
- 包含图像数据的DataBuffer
setSamples(int, int, int, int, int, int[], DataBuffer)
public void setDataElements(int x, int y, Object obj, DataBuffer data)
以下代码说明了将DataBuffer db1
(其存储布局由BandedSampleModel bsm1
)传送到DataBuffer db2
的一个像素的数据,DataBuffer db2
的存储布局由BandedSampleModel bsm2
。 传输通常比使用getPixel / setPixel更有效率。
BandedSampleModel bsm1, bsm2;
DataBufferInt db1, db2;
bsm2.setDataElements(x, y, bsm1.getDataElements(x, y, null, db1),
db2);
如果SampleModels具有相同数量的频带,则使用getDataElements / setDataElements在两个DataBuffer / SampleModel对之间传输是合法的,相应的频带具有与每个样本相同的位数,TransferTypes是相同的。
obj必须是TransferType类型的原始数组。 否则,抛出ClassCastException。 如果坐标不在边界,或者如果obj不够大以容纳像素数据,则可能抛出ArrayIndexOutOfBoundsException。
setDataElements
在类别
ComponentSampleModel
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
obj
- 如果非空,则返回此对象中的原始数组
data
- 包含图像数据的DataBuffer
getDataElements(int, int, Object, DataBuffer)
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
setPixel
在类别
ComponentSampleModel
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
iArray
- int数组中的输入样本
data
- 包含图像数据的DataBuffer
getPixel(int, int, int[], DataBuffer)
public void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
setPixels
在类别
ComponentSampleModel
x
- 左上角像素位置的X坐标
y
- 左上角像素位置的Y坐标
w
- 像素矩形的宽度
h
- 像素矩形的高度
iArray
- int数组中的输入样本
data
- 包含图像数据的DataBuffer
getPixels(int, int, int, int, int[], DataBuffer)
public void setSample(int x, int y, int b, int s, DataBuffer data)
setSample
在
ComponentSampleModel
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
b
- 乐队设定
s
- 输入样本为int
data
- 包含图像数据的DataBuffer
getSample(int, int, int, DataBuffer)
public void setSample(int x, int y, int b, float s, DataBuffer data)
setSample
在
ComponentSampleModel
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
b
- 乐队设置
s
- 输入样本为浮点数
data
- 包含图像数据的DataBuffer
getSample(int, int, int, DataBuffer)
public void setSample(int x, int y, int b, double s, DataBuffer data)
setSample
在类别
ComponentSampleModel
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
b
- 乐队设置
s
- 输入样本为双倍
data
- 包含图像数据的DataBuffer
getSample(int, int, int, DataBuffer)
public void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
setSamples
在
ComponentSampleModel
x
- 左上角像素位置的X坐标
y
- 左上角像素位置的Y坐标
w
- 像素矩形的宽度
h
- 像素矩形的高度
b
- 乐队设置
iArray
- 输入样本数组
data
- 包含图像数据的DataBuffer
getSamples(int, int, int, int, int, int[], DataBuffer)
public int hashCode()
Object
复制
HashMap
提供的那样 。
hashCode
的总合同是:
hashCode
方法必须始终返回相同的整数,前提是在对象上的equals
比较中没有使用任何信息被修改。 该整数不需要从一个应用程序的执行到相同应用程序的另一个执行保持一致。 equals(Object)
方法两个对象相等,则在两个对象中的每个对象上调用hashCode
方法必须产生相同的整数结果。 Object.equals(java.lang.Object)
方法是不相等的, 则不要求,因此在两个对象中的每个对象上调用hashCode
方法必须产生不同的整数结果。 但是,程序员应该意识到,为不等对象生成不同的整数结果可能会提高哈希表的性能。 尽可能多的合理实用,由类别Object
定义的hashCode方法确实为不同对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java的编程语言不需要此实现技术。)
hashCode
在类别
ComponentSampleModel
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)