public class ComponentSampleModel extends SampleModel
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,
| Modifier and Type | Field and Description |
|---|---|
protected int[] |
bandOffsets
数据数组元素中的所有条带的偏移。
|
protected int[] |
bankIndices
用于存储图像数据的带的每个银行的索引。
|
protected int |
numBands
在这
ComponentSampleModel带的数量。
|
protected int |
numBanks
在这
ComponentSampleModel银行数量。
|
protected int |
pixelStride
像素跨度(数据数组元素)的图像数据描述的这componentsamplemodel区域。
|
protected int |
scanlineStride
行步(数据数组元素)的图像数据描述的这componentsamplemodel区域。
|
dataType, height, width| Constructor and Description |
|---|
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。
|
| Modifier and Type | Method and Description |
|---|---|
SampleModel |
createCompatibleSampleModel(int w, int h)
创建具有指定宽度和高度的一种新的
ComponentSampleModel。
|
DataBuffer |
createDataBuffer()
创建一个
DataBuffer对应于该
ComponentSampleModel。
|
SampleModel |
createSubsetSampleModel(int[] bands)
创建与这componentsamplemodel乐队的一个子集的一个新的componentsamplemodel。
|
boolean |
equals(Object o)
指示是否有其他对象“等于”这一个。
|
int[] |
getBandOffsets()
返回所有带的带偏移量。
|
int[] |
getBankIndices()
返回所有波段的银行指数。
|
Object |
getDataElements(int x, int y, Object obj, DataBuffer data)
返回在一个原始的数组类型
TransferType单个像素数据。
|
int |
getNumDataElements()
|
int |
getOffset(int x, int y)
获取第一个像素的第一条带的偏移量(X,Y)。
|
int |
getOffset(int x, int y, int b)
获取像素(X,Y)的带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)。
|
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[] |
getSampleSize()
返回所有带的位数的位数。
|
int |
getSampleSize(int band)
返回指定的带的每个样本的位数。
|
int |
getScanlineStride()
返回该componentsamplemodel扫描线步。
|
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)
设置从一个数组的数组元素包含每一个样本像素矩形样品。
|
void |
setSample(int x, int y, int b, double s, DataBuffer data)
设置指定的带样的像素位于(x,y)使用一个双输入的
DataBuffer。
|
void |
setSample(int x, int y, int b, float s, DataBuffer data)
设置指定的带样的像素位于(x,y)用于输入一个浮在
DataBuffer。
|
void |
setSample(int x, int y, int b, int s, DataBuffer data)
设置指定的带样的像素位于(x,y)用于输入int在
DataBuffer。
|
void |
setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
设置指定矩形的像素从一个int数组包含每一样本数据数组元素中指定带样品。
|
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamplesprotected int[] bandOffsets
protected int[] bankIndices
protected int numBands
ComponentSampleModel带的数量。
protected int numBanks
ComponentSampleModel银行数量。
protected int scanlineStride
protected int pixelStride
public ComponentSampleModel(int dataType,
int w,
int h,
int pixelStride,
int scanlineStride,
int[] bandOffsets)
dataType -样品的存储的数据类型
w的宽度(像素)的图像数据描述区域
h -高度(像素)的图像数据描述区域
pixelStride -图像数据描述区域的像素跨度
scanlineStride -图像数据描述区域的线步
bandOffsets -所有带偏移
IllegalArgumentException -如果
w或
h不大于0
IllegalArgumentException -如果
pixelStride小于0
IllegalArgumentException -如果
scanlineStride小于0
IllegalArgumentException -如果
numBands小于1
IllegalArgumentException -如果
w和
h产品大于
Integer.MAX_VALUE
IllegalArgumentException -如果
dataType之一是不支持的数据类型
public ComponentSampleModel(int dataType,
int w,
int h,
int pixelStride,
int scanlineStride,
int[] bankIndices,
int[] bandOffsets)
dataType -样品的存储的数据类型
w的宽度(像素)的图像数据描述区域
h -高度(像素)的图像数据描述区域
pixelStride -图像数据描述区域的像素跨度
scanlineStride -图像数据描述区域的线步
bankIndices -所有波段的银行指数
bandOffsets -所有频带的带偏移
IllegalArgumentException -如果
w或
h不大于0
IllegalArgumentException -如果
pixelStride小于0
IllegalArgumentException -如果
scanlineStride小于0
IllegalArgumentException -如果
bankIndices长度不相等的
bankOffsets长度
IllegalArgumentException -如果任何的
bandIndices银行指数小于0
IllegalArgumentException -如果
dataType之一是不支持的数据类型
public SampleModel createCompatibleSampleModel(int w, int h)
ComponentSampleModel。新
SampleModel将有相同数量的频带,存储的数据类型,交织方案,和像素跨越这
SampleModel。
createCompatibleSampleModel 方法重写,继承类
SampleModel
w -产生的
SampleModel宽度
h -产生的
SampleModel高度
ComponentSampleModel
IllegalArgumentException -如果
w或
h不大于0
public SampleModel createSubsetSampleModel(int[] bands)
createSubsetSampleModel 方法重写,继承类
SampleModel
bands -从这个
ComponentSampleModel一个子带
ComponentSampleModel
ComponentSampleModel子集乐队创造了。
public DataBuffer createDataBuffer()
DataBuffer对应于该
ComponentSampleModel。的
DataBuffer对象的数据类型,一些银行和大小都是这
ComponentSampleModel一致。
createDataBuffer 方法重写,继承类
SampleModel
DataBuffer其数据类型、银行和数与本
ComponentSampleModel一致。
public int getOffset(int x,
int y)
ComponentSampleModel
csm作为
数据。GetElem(CSM。getoffset(x,y));
DataBuffer
data检索
x -像素的x位置
y -像素的Y位置
public int getOffset(int x,
int y,
int b)
b样品可以从一个
ComponentSampleModel
csm作为
数据。GetElem(CSM。getoffset(x,y,b));
DataBuffer
data检索
x -指定像素的x位置
y -指定像素的Y位置
b -指定的乐队
public final int[] getSampleSize()
getSampleSize 方法重写,继承类
SampleModel
public final int getSampleSize(int band)
getSampleSize 方法重写,继承类
SampleModel
band -指定的乐队
public final int[] getBankIndices()
public final int[] getBandOffsets()
public final int getScanlineStride()
ComponentSampleModel扫描线步。
public final int getPixelStride()
ComponentSampleModel像素迈进。
public final int getNumDataElements()
getDataElements(int, int, Object, DataBuffer)和
setDataElements(int, int, Object, DataBuffer)方法像素传输数。这是一个
ComponentSampleModel,条带数量相同。
getNumDataElements 方法重写,继承类
SampleModel
getDataElements和
setDataElements方法像素传输数。
SampleModel.getNumDataElements(),
SampleModel.getNumBands()
public Object getDataElements(int x, int y, Object obj, DataBuffer data)
TransferType单个像素数据。一
ComponentSampleModel,这是作为数据类型相同,和样品返回每一个数组元素。一般来说,
obj应通过在
null,使
Object是自动创建的,是正确的原始数据类型。
下面的代码演示了从DataBuffer db1一像素传输数据,其存储布局是通过ComponentSampleModel csm1描述,对DataBuffer db2,其存储布局是通过ComponentSampleModel csm2描述。转移通常比使用getPixel和setPixel更有效。
componentsamplemodel CSM1.1,CSM;databufferint DB1、DB2;CSM。setdataelements(X,Y,CSM1.1。getdataelements(x,y,null,DB1、DB2));使用
getDataElements和
setDataElements两
DataBuffer/SampleModel对之间的转让是合法的如果
SampleModel对象有相同数量的频带,相应的带每个样本的位数相同的号码,和
TransferTypes是相同的。
如果obj不null,它应该是一个原始的阵列式TransferType。否则,一个ClassCastException抛出。一个ArrayIndexOutOfBoundsException可能如果坐标不界泛起,或如果obj不null是不够容纳的像素数据。
getDataElements 方法重写,继承类
SampleModel
x的像素位置的x坐标
y的像素位置的y坐标
obj -如果non-
null,其中原始数组返回像素数据
data -包含图像数据的
DataBuffer
NullPointerException如果数据为空。
ArrayIndexOutOfBoundsException -如果坐标不越界,如果目标太小,容纳的输出。
setDataElements(int, int, Object, DataBuffer)
public int[] getPixel(int x,
int y,
int[] iArray,
DataBuffer data)
ArrayIndexOutOfBoundsException可能如果坐标不界抛出。
getPixel 方法重写,继承类
SampleModel
x的像素位置的x坐标
y的像素位置的y坐标
iArray如果非零,返回这个数组的样品
data -包含图像数据的数据缓冲区
NullPointerException如果数据为空。
ArrayIndexOutOfBoundsException如果坐标不会越界,或者如果iarray太小装的输出。
setPixel(int, int, int[], DataBuffer)
public int[] getPixels(int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
ArrayIndexOutOfBoundsException可能如果坐标不界抛出。
getPixels 方法重写,继承类
SampleModel
x -左上角像素位置的x坐标
y -左上角像素位置的y坐标
w -像素矩形的宽度
h -像素矩形的高度
iArray如果非零,返回这个数组的样品
data -包含图像数据的数据缓冲区
setPixels(int, int, int, int, int[], DataBuffer)
public int getSample(int x,
int y,
int b,
DataBuffer data)
ArrayIndexOutOfBoundsException可能如果坐标不界抛出。
getSample 方法重写,继承类
SampleModel
x的像素位置的x坐标
y的像素位置的y坐标
b -带回来
data -包含图像数据的
DataBuffer
setSample(int, int, int, int, DataBuffer)
public float getSampleFloat(int x,
int y,
int b,
DataBuffer data)
ArrayIndexOutOfBoundsException可能如果坐标不界抛出。
getSampleFloat 方法重写,继承类
SampleModel
x的像素位置的x坐标
y的像素位置的y坐标
b -带回来
data -包含图像数据的数据缓冲区
public double getSampleDouble(int x,
int y,
int b,
DataBuffer data)
ArrayIndexOutOfBoundsException可能如果坐标不界抛出。
getSampleDouble 方法重写,继承类
SampleModel
x的像素位置的x坐标
y的像素位置的y坐标
b -带回来
data -包含图像数据的数据缓冲区
public int[] getSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
ArrayIndexOutOfBoundsException可能如果坐标不界抛出。
getSamples 方法重写,继承类
SampleModel
x -左上角像素位置的x坐标
y -左上角像素位置的y坐标
w -像素矩形的宽度
h -像素矩形的高度
b -带回来
iArray -如果non-
null,返回这个数组的样品
data -包含图像数据的
DataBuffer
setSamples(int, int, int, int, int, int[], DataBuffer)
public void setDataElements(int x,
int y,
Object obj,
DataBuffer data)
TransferType在指定的
DataBuffer单个像素的数据。一
ComponentSampleModel,这是作为数据类型相同,和样品转移每一个数组元素。
下面的代码演示了从DataBuffer db1一像素传输数据,其存储布局是通过ComponentSampleModel csm1描述,对DataBuffer db2,其存储布局是通过ComponentSampleModel csm2描述。转移通常比使用getPixel更有效和setPixel。
componentsamplemodel CSM1.1,CSM;databufferint DB1、DB2;CSM。setdataelements(x,y,CSM1.1。getdataelements(x,y,null,DB1),DB2);使用
getDataElements和
setDataElements两
DataBuffer/SampleModel对之间的转让是合法的如果
SampleModel对象有相同数量的频带,相应的带每个样本的位数相同的号码,和
TransferTypes是相同的。
如果一个ClassCastException obj不是原始的数组类型TransferType扔。一个ArrayIndexOutOfBoundsException可能如果坐标不界泛起,或如果obj不足以容纳像素数据。
setDataElements 方法重写,继承类
SampleModel
x的像素位置的x坐标
y的像素位置的y坐标
obj -原始数组包含的像素数据
data -包含图像数据的数据缓冲区
getDataElements(int, int, Object, DataBuffer)
public void setPixel(int x,
int y,
int[] iArray,
DataBuffer data)
DataBuffer。一个
ArrayIndexOutOfBoundsException可能如果坐标不界抛出。
setPixel 方法重写,继承类
SampleModel
x的像素位置的x坐标
y的像素位置的y坐标
iArray -在一个int数组的输入样本
data -包含图像数据的数据缓冲区
getPixel(int, int, int[], DataBuffer)
public void setPixels(int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
ArrayIndexOutOfBoundsException可能如果坐标不界抛出。
setPixels 方法重写,继承类
SampleModel
x -左上角像素位置的x坐标
y -左上角像素位置的y坐标
w -像素矩形的宽度
h -像素矩形的高度
iArray -在一个int数组的输入样本
data -包含图像数据的数据缓冲区
getPixels(int, int, int, int, int[], DataBuffer)
public void setSample(int x,
int y,
int b,
int s,
DataBuffer data)
DataBuffer。一个
ArrayIndexOutOfBoundsException可能如果坐标不界抛出。
setSample 方法重写,继承类
SampleModel
x的像素位置的x坐标
y的像素位置的y坐标
b -带套
s -输入样本作为int
data -包含图像数据的数据缓冲区
getSample(int, int, int, DataBuffer)
public void setSample(int x,
int y,
int b,
float s,
DataBuffer data)
DataBuffer。一个
ArrayIndexOutOfBoundsException可能如果坐标不界抛出。
setSample 方法重写,继承类
SampleModel
x的像素位置的x坐标
y的像素位置的y坐标
b -带套
s -输入样本为一个浮动
data -包含图像数据的数据缓冲区
getSample(int, int, int, DataBuffer)
public void setSample(int x,
int y,
int b,
double s,
DataBuffer data)
DataBuffer。一个
ArrayIndexOutOfBoundsException可能如果坐标不界抛出。
setSample 方法重写,继承类
SampleModel
x的像素位置的x坐标
y的像素位置的y坐标
b -带套
s -输入样本为双
data -包含图像数据的数据缓冲区
getSample(int, int, int, DataBuffer)
public void setSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
ArrayIndexOutOfBoundsException可能如果坐标不界抛出。
setSamples 方法重写,继承类
SampleModel
x -左上角像素位置的x坐标
y -左上角像素位置的y坐标
w -像素矩形的宽度
h -像素矩形的高度
b -带套
iArray -在一个int数组的输入样本
data -包含图像数据的数据缓冲区
getSamples(int, int, int, int, int, int[], DataBuffer)
public boolean equals(Object o)
Object
的equals方法实现了对非空对象引用的一个等价关系:
x,x.equals(x)应该返回true。x和y,x.equals(y)应该返回true当且仅当y.equals(x)返回true。x,y,和z,如果x.equals(y)返回true和y.equals(z)返回true,然后x.equals(z)应该返回true。x和y,多次调用x.equals(y)始终返回true或始终返回false,没有提供信息用于equals比较对象被修改。x,x.equals(null)应该返回false。类的方法实现Object equals最挑剔的对象可能的等价关系;就是说,对于任何非空的参考值x和y,此方法返回true当且仅当x和y引用同一个对象(x == y有价值true)。
请注意,它一般是必要覆盖hashCode方法重写此方法,以保持对hashCode方法的一般合同,即平等的对象必须具有相等的散列码。
equals 方法重写,继承类
Object
o -参考对象的比较。
true obj参数相同;
false否则。
Object.hashCode(),
HashMap
public int hashCode()
Object
HashMap利益支持。
对hashCode一般合同:
hashCode方法总是返回相同的整数,没有提供信息用于对对象的修改equals比较。这个整数不需要保持一致,从一个应用程序的一个执行到另一个执行相同的应用程序。equals(Object)法两个对象是相等的,那么调用hashCode方法每一个对象必须产生相同的整数结果。Object.equals(java.lang.Object)法两个对象是不平等的,然后调用hashCode方法每一个对象必须产生不同的整数结果。然而,程序员应该意识到,产生不同的整数结果的不平等的对象可能会提高哈希表的性能。尽合理的切实可行,由类Object定义hashCode方法返回不同的对象不同的整数。(这通常是通过将该对象的内部地址转换成一个整数,但这不是实现实现技术的™java编程语言。要求)
hashCode 方法重写,继承类
Object
Object.equals(java.lang.Object),
System.identityHashCode(java.lang.Object)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.