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, setSamples
protected 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
对象有相同数量的频带,相应的带每个样本的位数相同的号码,和
TransferType
s是相同的。
如果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
对象有相同数量的频带,相应的带每个样本的位数相同的号码,和
TransferType
s是相同的。
如果一个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.