准备位图 byte[] 数据以传递给 jni
Posted
技术标签:
【中文标题】准备位图 byte[] 数据以传递给 jni【英文标题】:Preparing bitmap byte[] data to pass to jni 【发布时间】:2018-01-07 01:16:06 【问题描述】:我想通过jni将我的android类中的位图传递给我的native c++类,然后在另一端执行opencv处理。
我不明白如何使用 getPixels 之类的方法准备数据以放入 byte[] 数组。我需要考虑 RGB 吗?
【问题讨论】:
【参考方案1】:您必须将Bitmap
转换为Mat
。 org.opencv.android.Utils
类具有实用转换方法。它将Bitmap
作为ARGB_8888
或RGB_565
类型的参数。
import org.opencv.android.Utils;
private void convertToMat(Bitmap bitmap)
Mat mat = new Mat();
Bitmap bmp32 = bitmap.copy(Bitmap.Config.ARGB_8888, true);
Utils.bitmapToMat(bmp32, mat);
这只是一种方式。查看This thread 了解更多信息。谢谢
【讨论】:
以上是关于准备位图 byte[] 数据以传递给 jni的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 中使用 JNI 将资产 FileDescriptor 正确传递给 FFmpeg
如何将字节数组从android java类传递给JNI C NDK?