0

Java でビットマップを作成し、その参照を渡し、C++ で操作して、Java で結果を確認したいと思います。特に、次のことを試しましたが、結果はありませんでした。

JNIEXPORT void JNICALL Java_com_dacuda_scannermousetablet_ui_activities_HomeActivity_setChangeBitmap(
    JNIEnv *env, jobject obj, jobject bitmap) {


mainEnv = env;
AndroidBitmapInfo  info;
void*              pixels;
int                ret;

if ((ret = AndroidBitmap_getInfo(env, bitmap, &info)) < 0) {
    return;
}

if (info.format != ANDROID_BITMAP_FORMAT_RGB_565) {
    return;
}

if ((ret =AndroidBitmap_lockPixels(env, bitmap, &pixels)) < 0) {
}

uint16_t *pictureRGB;
int size = sizeof(uint16_t)*info.width*info.height;
pictureRGB = (uint16_t*)malloc(sizeof(uint16_t)*info.width*info.height);
memcpy((char*)pixels, (char*)pictureRGB, info.width*info.height*sizeof(uint16_t));


mEdit = new EditImage((char*)pictureRGB, info.width, info.height);
mEdit->changeBrightness();

}

そして、Java側ですでに変更されたビットマップを持っていることを除いて、残念ながらそれは機能しません。

4

1 に答える 1