gpt4 book ai didi

android - 在 android 中从 native 代码显示位图时出现问题

转载 作者:行者123 更新时间:2023-11-30 04:45:55 27 4
gpt4 key购买 nike

我在使用 native 代码显示位图时遇到问题。我的代码如下

本地代码

 JNIEXPORT void JNICALL Java_app_Panel_renderbitmap(JNIEnv* env, jobject obj,  jobject bitmap, jlong time_ms)
{
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) {
}

memcpy(pixels, pictureRGB, 480*320);

AndroidBitmap_unlockPixels(env, bitmap);
}

Java代码

         Bitmap mBitmap = Bitmap.createBitmap(480, 320, Bitmap.Config.RGB_565);
renderbitmap(mBitmap, 0);
canvas.drawBitmap(mBitmap, 0, 0, null);

我的应用程序在 memcpy 处崩溃,其中 pictureRGB 被声明为 int *pictureRGB[4];

所有的像素点都在 pictureRGB 内部。我这样做有什么问题吗?是否将正确的值传递给位图和 memcpy?

最佳答案

我认为你应该声明 pictureRGB 如下:

uint16_t *pictureRGB;
pictureRGB = malloc(sizeof(uint16_t)*480*320);

然后复制像素执行以下操作:

memcpy(pixels, pictureRGB, 480*320*sizeof(uint16_t));

关于android - 在 android 中从 native 代码显示位图时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4971272/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com