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, setSamples
public 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.