public class MultiPixelPackedSampleModel extends SampleModel
MultiPixelPackedSampleModel类代表一个带状图像可以包装多样本像素为一个数据元素。像素不允许跨越数据元素。数据类型可以是databuffer.type_byte,databuffer.type_ushort,或databuffer.type_int。每个像素必须是个位和一个像素的2号2号功率功率必须正好是一个数据元素。像素位步长等于每像素位数的位数。线步是数据元素和最后几个数据元素是用未使用的像素。数据位偏移是位从
DataBuffer开始到第一像素偏移,必须跨越多个像素点。
下面的代码说明了提取像素x, y从DataBuffer data位和dataType型数据元素存储像素数据:
int dataElementSize = DataBuffer.getDataTypeSize(dataType);
int bitnum = dataBitOffset + x*pixelBitStride;
int element = data.getElem(y*scanlineStride + bitnum/dataElementSize);
int shift = dataElementSize - (bitnum & (dataElementSize-1))
- pixelBitStride;
int pixel = (element >> shift) & ((1 << pixelBitStride) - 1);
dataType, height, numBands, width| Constructor and Description |
|---|
MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits)
构建了一个
MultiPixelPackedSampleModel与指定的数据类型、宽度、高度和每像素的比特数。
|
MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits, int scanlineStride, int dataBitOffset)
构建一个与指定的数据类型、宽度、高度
MultiPixelPackedSampleModel,每像素的位数,扫描线跨越数据位偏移。
|
| Modifier and Type | Method and Description |
|---|---|
SampleModel |
createCompatibleSampleModel(int w, int h)
创建具有指定宽度和高度的一种新的
MultiPixelPackedSampleModel。
|
DataBuffer |
createDataBuffer()
创建一个
DataBuffer对应于该
MultiPixelPackedSampleModel。
|
SampleModel |
createSubsetSampleModel(int[] bands)
创建与这
MultiPixelPackedSampleModel乐队的一个子集的一个新的
MultiPixelPackedSampleModel。
|
boolean |
equals(Object o)
指示是否有其他对象“等于”这一个。
|
int |
getBitOffset(int x)
返回位偏移,到数据元素,其存储的扫描
xth像素。
|
int |
getDataBitOffset()
返回位中的数据位偏移量。
|
Object |
getDataElements(int x, int y, Object obj, DataBuffer data)
返回在一个原始的数组类型transfertype单个像素数据。
|
int |
getNumDataElements()
|
int |
getOffset(int x, int y)
返回像素偏移(X,Y )数据的数组元素。
|
int[] |
getPixel(int x, int y, int[] iArray, DataBuffer data)
返回指定的单波段的像素在一个
int数组的第一个元素。
|
int |
getPixelBitStride()
返回位的像素位。
|
int |
getSample(int x, int y, int b, DataBuffer data)
作为回报
int样品在指定频带的像素位于(X,Y )。
|
int[] |
getSampleSize()
返回所有带的位数的位数。
|
int |
getSampleSize(int band)
返回指定的带的每个样本的位数。
|
int |
getScanlineStride()
返回线步。
|
int |
getTransferType()
返回用于通过
getDataElements和
setDataElements方法像素转移transfertype。
|
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 |
setSample(int x, int y, int b, int s, DataBuffer data)
设置指定的带样的像素位于(X,Y )用于输入
int在
DataBuffer。
|
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getPixels, getSampleDouble, getSampleFloat, getSamples, getSamples, getSamples, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setPixels, setSample, setSample, setSamples, setSamples, setSamplespublic MultiPixelPackedSampleModel(int dataType,
int w,
int h,
int numberOfBits)
MultiPixelPackedSampleModel与指定的数据类型、宽度、高度和每像素的比特数。
dataType -样品的存储的数据类型
w的宽度,以像素为单位的图像数据的区域的描述
h的高度,以像素为单位的图像数据描述的区域
numberOfBits -每像素的比特数
IllegalArgumentException -如果
dataType不是
DataBuffer.TYPE_BYTE,
DataBuffer.TYPE_USHORT,或
DataBuffer.TYPE_INT
public MultiPixelPackedSampleModel(int dataType,
int w,
int h,
int numberOfBits,
int scanlineStride,
int dataBitOffset)
MultiPixelPackedSampleModel指定数据类型,宽度,高度,每像素的位数,扫描线跨越数据位偏移。
dataType -样品的存储的数据类型
w的宽度,以像素为单位的图像数据的区域的描述
h的高度,以像素为单位的图像数据描述的区域
numberOfBits -每像素的比特数
scanlineStride -图像数据线步
dataBitOffset -数据位偏移的图像数据的区域描述
RasterFormatException如果每像素的比特数是不是2的幂的或者一个2像素的数字电源不适合在一个数据元素。
IllegalArgumentException -如果
w或
h不大于0
IllegalArgumentException -如果
dataType不是
DataBuffer.TYPE_BYTE,
DataBuffer.TYPE_USHORT,或
DataBuffer.TYPE_INT
public SampleModel createCompatibleSampleModel(int w, int h)
MultiPixelPackedSampleModel。新
MultiPixelPackedSampleModel具有相同的存储数据类型和每像素的比特数作为这
MultiPixelPackedSampleModel。
createCompatibleSampleModel 方法重写,继承类
SampleModel
w -指定的宽度
h -指定高度
SampleModel用指定的宽度和高度和相同的存储数据类型和每像素的比特数作为这
MultiPixelPackedSampleModel。
IllegalArgumentException -如果
w或
h不大于0
public DataBuffer createDataBuffer()
DataBuffer对应于该
MultiPixelPackedSampleModel。的
DataBuffer对象的数据类型和大小与这
MultiPixelPackedSampleModel一致,
DataBuffer具有单个银行。
createDataBuffer 方法重写,继承类
SampleModel
MultiPixelPackedSampleModel
DataBuffer。
public int getNumDataElements()
getDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)和
setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)方法数。这是一个
MultiPixelPackedSampleModel。
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 int[] getSampleSize()
getSampleSize 方法重写,继承类
SampleModel
public int getSampleSize(int band)
getSampleSize 方法重写,继承类
SampleModel
band -指定的乐队
public int getOffset(int x,
int y)
x -指定像素的x坐标
y -指定像素点的Y坐标
public int getBitOffset(int x)
xth像素。这是所有的扫描线相同的偏移量。
x -指定像素
public int getScanlineStride()
MultiPixelPackedSampleModel扫描线步。
public int getPixelBitStride()
MultiPixelPackedSampleModel的
pixelBitStride。
public int getDataBitOffset()
MultiPixelPackedSampleModel的
dataBitOffset。
public int getTransferType()
getDataElements和
setDataElements方法像素转移transfertype。的transfertype可能或不可能作为存储的数据类型相同。这是一个databuffer.type_byte transfertype,databuffer.type_ushort,或databuffer.type_int。
getTransferType 方法重写,继承类
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.getNumDataElements(),
DataBuffer
public SampleModel createSubsetSampleModel(int[] bands)
MultiPixelPackedSampleModel乐队的一个子集的新
MultiPixelPackedSampleModel。因为
MultiPixelPackedSampleModel只有一个乐队,乐队的论点必须有一个长度和指示零带。
createSubsetSampleModel 方法重写,继承类
SampleModel
bands -指定频带
SampleModel
MultiPixelPackedSampleModel子集。
RasterFormatException如果带的数量要求不一。
IllegalArgumentException -如果
w或
h不大于0
public int getSample(int x,
int y,
int b,
DataBuffer data)
int样品在指定频带的像素位于(X,Y )。如果一个
ArrayIndexOutOfBoundsException坐标不界抛出。
getSample 方法重写,继承类
SampleModel
x -指定像素的x坐标
y -指定像素点的Y坐标
b -带回来,这是假定为0
data -包含图像数据的
DataBuffer
ArrayIndexOutOfBoundsException -如果指定的坐标是没有界限。
setSample(int, int, int, int, DataBuffer)
public void setSample(int x,
int y,
int b,
int s,
DataBuffer data)
int在
DataBuffer。如果一个
ArrayIndexOutOfBoundsException坐标不界抛出。
setSample 方法重写,继承类
SampleModel
x -指定像素的x坐标
y -指定像素点的Y坐标
b -带回来,这是假定为0
s -输入样本作为一个
int
data -
DataBuffer图像数据存储
ArrayIndexOutOfBoundsException -如果坐标没有界限。
getSample(int, int, int, DataBuffer)
public Object getDataElements(int x, int y, Object obj, DataBuffer data)
MultiPixelPackedSampleModel,数组的一个元素,和类型是最小的databuffer.type_byte,databuffer.type_ushort,或databuffer.type_int可以容纳一个像素。一般来说,
obj应通过在
null,使
Object是自动创建的,是正确的原始数据类型。
下面的代码演示了从DataBuffer db1一像素传输数据,其存储布局是通过MultiPixelPackedSampleModel mppsm1描述,对DataBuffer db2,其存储布局是通过MultiPixelPackedSampleModel mppsm2描述。转移通常比使用getPixel或setPixel更有效。
multipixelpackedsamplemodel mppsm1,mppsm2;databufferint DB1、DB2;mppsm2。setdataelements(x,y,mppsm1。getdataelements(x,y,空,DB1、DB2));使用
getDataElements或
setDataElements两
DataBuffer/SampleModel对之间的转让是合法的
SampleModels如果有相同数量的频带,相应的带每个样本的位数相同的号码,和transfertypes是相同的。
如果obj不null,它应该是一个原始的阵列式transfertype。否则,一个ClassCastException抛出。如果一个ArrayIndexOutOfBoundsException坐标不界抛出,或者如果obj不null是不够容纳的像素数据。
getDataElements 方法重写,继承类
SampleModel
x -指定像素的x坐标
y -指定像素点的Y坐标
obj -原始数组中返回的数据或
null像素。
data -包含图像数据的
DataBuffer。
Object包含数据为指定像素。
ClassCastException -如果
obj不是原始的数组类型transfertype或不
null
ArrayIndexOutOfBoundsException如果坐标不会越界,或者如果
obj不
null或不够容纳的像素数据
setDataElements(int, int, Object, DataBuffer)
public int[] getPixel(int x,
int y,
int[] iArray,
DataBuffer data)
int数组的第一个元素。
ArrayIndexOutOfBoundsException是如果坐标不界抛出。
getPixel 方法重写,继承类
SampleModel
x -指定像素的x坐标
y -指定像素点的Y坐标
iArray含像素被退回或
null阵列
data -
DataBuffer图像数据存储
ArrayIndexOutOfBoundsException -如果坐标没有界限
setPixel(int, int, int[], DataBuffer)
public void setDataElements(int x,
int y,
Object obj,
DataBuffer data)
DataBuffer单个像素的数据。一
MultiPixelPackedSampleModel,只有该数组的第一个元素是有效的数据,和类型必须是最小databuffer.type_byte,databuffer.type_ushort,或databuffer.type_int可以容纳一个像素。
下面的代码演示了一个像素数据传输从DataBuffer db1,其存储布局是通过MultiPixelPackedSampleModel mppsm1描述,对DataBuffer db2,其存储布局是通过MultiPixelPackedSampleModel mppsm2描述。转移通常比使用getPixel或setPixel更有效。
multipixelpackedsamplemodel mppsm1,mppsm2;databufferint DB1、DB2;mppsm2。setdataelements(x,y,mppsm1。getdataelements(x,y,空,DB1、DB2));使用
getDataElements或
setDataElements两
DataBuffer/SampleModel对之间的转让是合法的如果
SampleModel对象有相同数量的频带,相应的带每个样本的位数相同的号码,和transfertypes是相同的。
obj必须是一个原始的数组类型transfertype。否则,一个ClassCastException抛出。如果一个ArrayIndexOutOfBoundsException坐标不界泛起,或如果obj不足以容纳像素数据。
setDataElements 方法重写,继承类
SampleModel
x的像素位置的x坐标
y的像素位置的y坐标
obj -原始数组包含的像素数据
data -包含图像数据的
DataBuffer
getDataElements(int, int, Object, DataBuffer)
public void setPixel(int x,
int y,
int[] iArray,
DataBuffer data)
int阵列在
DataBuffer。
ArrayIndexOutOfBoundsException是如果坐标不界抛出。
setPixel 方法重写,继承类
SampleModel
x的像素位置的x坐标
y的像素位置的y坐标
iArray在
int阵列的输入像素
data -包含图像数据的
DataBuffer
getPixel(int, int, int[], DataBuffer)
public boolean equals(Object o)
Object
的equals方法实现了对非空对象引用的一个等价关系:
x,x.equals(x)应该返回true。x和y,x.equals(y)应该只有y.equals(x)返回true返回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.