以 transfertype
类型基本数组形式返回单个像素的数据。对于 componentsamplemodel
,返回的数据与 data 类型相同,且每个数组元素返回一个样本。通常,obj
应该作为 null
传入,以便 object
能自动创建并成为正确的基本数据类型。
以下代码说明了如何将像素的数据从 databuffer
db1
(其存储布局由 componentsamplemodel
csm1
描述)传输到 databuffer
db2
(其存储布局由 componentsamplemodel
csm2
描述)。该传输通常比使用 getpixel
和 setpixel
更有效。
componentsamplemodel csm1, csm2;
databufferint db1, db2;
csm2.setdataelements(x, y,
csm1.getdataelements(x, y, null, db1), db2);
如果 samplemodel
对象具有相同数量的 band,相应 band 具有相同数量的每样本位数,并且 transfertype
相同,则使用 getdataelements
和 setdataelements
在两个 databuffer/samplemodel
对之间传输是合法的。
如果 obj
不为 null
,则它应该是 transfertype
类型的基本数组。否则,将抛出 classcastexception
。如果坐标不在边界内部,或者 obj
不为 null
且不足以保存像素数据,则抛出 arrayindexoutofboundsexception
。
- 指定者:
- 类
samplemodel
中的 getdataelements
- 参数:
x
- 像素位置的 x 坐标y
- 像素位置的 y 坐标obj
- 如果为非 null
,则是一个要在其中返回像素数据的基本数组data
- 包含图像数据的 databuffer
- 返回:
- 指定像素的数据
- 抛出:
nullpointerexception
- 如果数据为 null。
arrayindexoutofboundsexception
- 如果坐标不在边界内部,或者 obj 太小而不能保存输出。- 另请参见:
setdataelements(int, int, object, databuffer)