如何将int32Array转换为java int[]?

如何将int32Array转换为java int[]?,java,itk,Java,Itk,我有: 这是由于使用指向SimpleTk图像数据的指针造成的。有人能帮我把这个数组类型转换成常规的java数组吗 编辑 我尝试了另一种方法,从itkImage类继承并获得指向图像缓冲区的Cptr指针 我还在Java中发现了一个内存指针类,可以从中获取数组 int32Array hh = int32Array.frompointer(img.getBufferAsInt32()); 现在的问题是如何将Cptr指针复制到Java指针(equal运算符不起作用)创建一个与上一个相同大小的新数组,然后

我有:

这是由于使用指向SimpleTk图像数据的指针造成的。有人能帮我把这个数组类型转换成常规的java数组吗

编辑

我尝试了另一种方法,从itkImage类继承并获得指向图像缓冲区的Cptr指针 我还在Java中发现了一个内存指针类,可以从中获取数组

int32Array hh = int32Array.frompointer(img.getBufferAsInt32());

现在的问题是如何将Cptr指针复制到Java指针(equal运算符不起作用)

创建一个与上一个相同大小的新数组,然后键入int,复制所有数据 从旧的转换为新的,同时使用(int)将其转换为int

int[]newArray=newint[hh.length];

对于(int i=0;很明显,循环并转换每个元素,但这可能非常慢。是的@AleksG,这就是为什么我将像素数据作为指针,而不使用GetPixelValue,因为我必须在图像上循环,这与我的注释如何不同?还请注意OP中的响应注释。你的答案没有确切的帮助。i尝试了另一种方法,但我也被困在那里:)我编辑了anwer..感谢大家的关注通过执行读取操作,您可以复制它吗?读取(长偏移量,字节[]buf,int index,int length)间接将本机指针从本机指针指向的内存复制到指定的数组中。这会给您带来什么样的错误?
        com.sun.jna.Pointer ptr = new com.sun.jna.Memory(2 * 512 * 512);
       // ptr.share(_pointer);
        int testarr[] = new int[512 * 512];
        ptr.read(_pointer, testarr, 0, testarr.length);
 int[] newArray = new int[hh.length];

    for(int i=0; i<hh.length; i++){
        array[i] = (int)hh[i];
    }