簡體   English   中英

從Java傳遞位圖引用到C ++?

[英]pass bitmap reference from java to C++?

我想在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端已經更改了位圖外,不幸的是它不起作用。

您需要對AndroidBitmap_unlockPixels進行匹配調用

另外,以下代碼僅用“隨機”數據填充您的圖片:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM