public class SinglePixelPackedSampleModel extends SampleModel
TYPE_BYTE,
TYPE_USHORT,
TYPE_INT数据类型。所有的数据驻留在一个数组中的元素的数据缓冲区的第一家银行。有这样的图像数据可以被直接访问的方法。扫描线跨越是一个给定的样本,在下一行同列相应的样本数据之间的数组元素个数。位掩模是提取代表像素级的样品所需的掩模。位偏移是代表像素的带的样本的数据数组元素的位的偏移量。
下面的代码说明了提取代表像素x,y从DataBuffer data带b样品的位:
int sample = data.getElem(y * scanlineStride + x);
sample = (sample & bitMasks[b]) >>> bitOffsets[b];
dataType, height, numBands, width| Constructor and Description |
|---|
SinglePixelPackedSampleModel(int dataType, int w, int h, int[] bitMasks)
构建了一个bitmasks.length带singlepixelpackedsamplemodel。
|
SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bitMasks)
构建了一个bitmasks.length带和扫描线跨越等于scanlinestride数据数组元素singlepixelpackedsamplemodel。
|
| Modifier and Type | Method and Description |
|---|---|
SampleModel |
createCompatibleSampleModel(int w, int h)
创建具有指定宽度和高度的一种新的singlepixelpackedsamplemodel。
|
DataBuffer |
createDataBuffer()
创建一个数据缓冲区,对应于这singlepixelpackedsamplemodel。
|
SampleModel |
createSubsetSampleModel(int[] bands)
这创造了与这singlepixelpackedsamplemodel乐队的新singlepixelpackedsamplemodel子集。
|
boolean |
equals(Object o)
指示是否有其他对象“等于”这一个。
|
int[] |
getBitMasks()
返回所有频段的位掩码。
|
int[] |
getBitOffsets()
返回表示用于所有波段的像素的数据数组元素的位偏移量。
|
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)。
|
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()
返回该singlepixelpackedsamplemodel扫描线步。
|
int |
hashCode()
返回一个对象的哈希代码值。
|
void |
setDataElements(int x, int y, Object obj, DataBuffer data)
设置从原始数组中指定的DataBuffer型transfertype单个像素的数据。
|
void |
setPixel(int x, int y, int[] iArray, DataBuffer data)
设置一个像素使用的样本输入一个int数组的数据缓存。
|
void |
setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
设置从一个数组的数组元素包含每一个样本像素矩形样品。
|
void |
setSample(int x, int y, int b, int s, DataBuffer data)
设置指定的带样的像素位于(x,y)用于输入一个int的数据缓存。
|
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, getSampleDouble, getSampleFloat, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSample, setSample, setSamples, setSamplespublic SinglePixelPackedSampleModel(int dataType,
int w,
int h,
int[] bitMasks)
dataType -样品的存储的数据类型。
w的宽度(像素)的图像数据描述的区域。
h -高度(像素)的图像数据的区域描述。
bitMasks -所有带点面具。
IllegalArgumentException -如果
dataType不是
DataBuffer.TYPE_BYTE,
DataBuffer.TYPE_USHORT,或
DataBuffer.TYPE_INT
public SinglePixelPackedSampleModel(int dataType,
int w,
int h,
int scanlineStride,
int[] bitMasks)
dataType -样品的存储的数据类型。
w的宽度(像素)的图像数据描述区域。
h -高度(像素)的图像数据描述区域。
scanlineStride -图像数据线步。
bitMasks -所有带点面具。
IllegalArgumentException -如果
w或
h不大于0
IllegalArgumentException -如果
bitMask任何面具是不连续的
IllegalArgumentException -如果
dataType不是
DataBuffer.TYPE_BYTE,
DataBuffer.TYPE_USHORT,或
DataBuffer.TYPE_INT
public int getNumDataElements()
getNumDataElements 方法重写,继承类
SampleModel
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()
public SampleModel createCompatibleSampleModel(int w, int h)
createCompatibleSampleModel 方法重写,继承类
SampleModel
w -产生的
SampleModel宽度
h -产生的
SampleModel高度
SinglePixelPackedSampleModel。
IllegalArgumentException -如果
w或
h不大于0
public DataBuffer createDataBuffer()
createDataBuffer 方法重写,继承类
SampleModel
SampleModel
DataBuffer。
public int[] getSampleSize()
getSampleSize 方法重写,继承类
SampleModel
public int getSampleSize(int band)
getSampleSize 方法重写,继承类
SampleModel
band -指定的乐队
public int getOffset(int x,
int y)
x,y含像素数据元素可以从一个singlepixelpackedsamplemodel
sppsm作为缓冲
data检索:
数据。GetElem(sppsm。getoffset(x,y));
x -指定像素的x坐标
y -指定像素点的Y坐标
public int[] getBitOffsets()
public int[] getBitMasks()
public int getScanlineStride()
SinglePixelPackedSampleModel扫描线步。
public SampleModel createSubsetSampleModel(int[] bands)
createSubsetSampleModel 方法重写,继承类
SampleModel
bands -这
SampleModel带的子集
SampleModel波段子集
SampleModel。
RasterFormatException如果带参数的长度大于样本模型的谱带数。
public Object getDataElements(int x, int y, Object obj, DataBuffer data)
下面的代码演示了一个像素传输数据从缓冲db1,其存储布局是通过singlepixelpackedsamplemodel sppsm1描述,DataBuffer db2,其存储布局是通过singlepixelpackedsamplemodel sppsm2描述。转移通常会比使用GetPixel / SetPixel更有效。
singlepixelpackedsamplemodel sppsm1,sppsm2;databufferint DB1、DB2;sppsm2。setdataelements(x,y,sppsm1。getdataelements(x,y,空,DB1、DB2));使用getdataelements / setdataelements两缓冲/ samplemodel如果SampleModels有相同数量的频带对合法之间传送带,对应每个样本的位数相同的号码,和transfertypes是相同的。
如果obj是非空的,它应该是一个原始的阵列式transfertype。否则,抛出ClassCastException。一个对象的大小时抛出可能如果坐标不界泛起,或如果obj是非空,不足以容纳像素数据。
getDataElements 方法重写,继承类
SampleModel
x的像素位置的x坐标。
y的像素位置的y坐标。
obj如果非空,其中原始数组返回像素数据。
data -包含图像数据的数据缓冲区。
setDataElements(int, int, Object, DataBuffer)
public int[] getPixel(int x,
int y,
int[] iArray,
DataBuffer data)
getPixel 方法重写,继承类
SampleModel
x的像素位置的x坐标。
y的像素位置的y坐标。
iArray如果非零,返回这个数组的样品
data -包含图像数据的数据缓冲区。
setPixel(int, int, int[], DataBuffer)
public int[] getPixels(int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
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)
getSample 方法重写,继承类
SampleModel
x的像素位置的x坐标。
y的像素位置的y坐标。
b -带回来。
data -包含图像数据的数据缓冲区。
setSample(int, int, int, int, DataBuffer)
public int[] getSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
getSamples 方法重写,继承类
SampleModel
x -左上角像素位置的x坐标。
y -左上角像素位置的y坐标。
w -像素矩形的宽度。
h -像素矩形的高度。
b -带回来。
iArray如果非零,返回这个数组的样品。
data -包含图像数据的数据缓冲区。
setSamples(int, int, int, int, int, int[], DataBuffer)
public void setDataElements(int x,
int y,
Object obj,
DataBuffer data)
下面的代码演示了从数据缓存db1一像素传输数据,其存储布局是通过singlepixelpackedsamplemodel sppsm1描述,对数据缓存db2,其存储布局是通过singlepixelpackedsamplemodel sppsm2描述。转移通常会比使用GetPixel / SetPixel更有效。
singlepixelpackedsamplemodel sppsm1,sppsm2;databufferint DB1、DB2;sppsm2。setdataelements(x,y,sppsm1。getdataelements(x,y,空,DB1、DB2));使用getdataelements / setdataelements两缓冲/ samplemodel如果SampleModels有相同数量的频带对合法之间传送带,对应每个样本的位数相同的号码,和transfertypes是相同的。
目标必须是一个原始的数组类型transfertype。否则,抛出ClassCastException。一个对象的大小时抛出可能如果坐标不界泛起,或如果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)
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)
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)
setSample 方法重写,继承类
SampleModel
x的像素位置的x坐标。
y的像素位置的y坐标。
b -带套。
s -输入样本为int型。
data -包含图像数据的数据缓冲区。
getSample(int, int, int, DataBuffer)
public void setSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
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.