JNI 中位图图像的动态 NewObjectArray

Dynamic NewObjectArray of Bitmap Images in JNI

所以我 std::vector<cv::Rect> boundRect 我必须从中创建一个 Mat 图像数组,并通过 JNI 在 Android 代码中使用它。

如果我必须发送单个位图图像,这是有效的代码。

Mat dst= orignal_image(rectObject);
jclass java_bitmap_class = (jclass)env->FindClass("android/graphics/Bitmap");
jmethodID mid = env->GetMethodID(java_bitmap_class, "getConfig", "()Landroid/graphics/Bitmap$Config;");
jobject bitmap_config = env->CallObjectMethod(bitmap, mid);
jobject _bitmap = mat_to_bitmap(env,dst,false,bitmap_config);
AndroidBitmap_unlockPixels(env, bitmap);
        return _bitmap;

如何创建 jobjectarray 位图图像?

我解决了-

jobjectArray strarr = env->NewObjectArray(sizeRect, (jclass)env->FindClass("android/graphics/Bitmap"), 0);
    for (int i = 0; i < sizeRect; i++)
    {
        dst = mbgra(boundRect[i]);
        jclass java_bitmap_class = (jclass)env->FindClass("android/graphics/Bitmap");
        jmethodID mid = env->GetMethodID(java_bitmap_class, "getConfig", "()Landroid/graphics/Bitmap$Config;");
        jobject bitmap_config = env->CallObjectMethod(bitmap, mid);
        jobject _bitmap = mat_to_bitmap(env,dst,false,bitmap_config);
        AndroidBitmap_unlockPixels(env, bitmap);
        env->SetObjectArrayElement(strarr, i, _bitmap);
    }
    return strarr;