2

我必须对位图进行一些处理,并且我正在尝试使用 NDK 通过锁定位图像素将字节数组返回给 java。在 java 中的处理完成后,我(最后)调用另一个 NDK 函数来解锁位图的像素。

我尝试了几件事,但没有人奏效:

  • 将锁定像素操作(将其转换为 jbyteArray)返回的 void* 返回给 java,不起作用(sigsegv)。
  • 使用 ByteBuffer 也不起作用,因为它是只读的(我需要从 java 操作它)。
  • 所有其他似乎有效的方法都会创建数组的副本......我试图避免这种情况以减少内存消耗。
4

1 回答 1

0

我已经通过完全在本机代码中操作数组来解决这个问题。所有使用 byte[] 的 Java 代码都已移至 JNI。

根据我的研究,我认为没有办法直接从 Java 操作位图的字节数组。当然,您可以操作副本,但我没有找到任何直接使用本机位图数据的方法。

如果有人找到方法,我想知道。

问候!

于 2013-09-22T23:32:45.230 回答