Android将位图传递到2.1及更低版本的Native

Kle*_*ine 5 java android android-ndk

使用Android 2.2时,在NDK中获取Bitmap数据非常容易,但是在2.1及更低版本中,AndroidBitmap_lockPixels函数不可用.我一直在寻找过去几个小时,但没有任何效果.

如何在不使用该功能的情况下访问位图的像素数据?

fmo*_*fmo 1

创建具有原始图像尺寸和 ARGB_8888 格式的空位图:

int width =  src.getWidth();
int height = src.getHeight();
Bitmap dest = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Run Code Online (Sandbox Code Playgroud)

将像素从源位图复制到 int 数组:

int[] pixels = new int[width * height];
src.getPixels(pixels, 0, width, 0, 0, width, height);
Run Code Online (Sandbox Code Playgroud)

并将这些像素设置为目标位图:

dest.setPixels(pixels, 0, width, 0, 0, width, height);
Run Code Online (Sandbox Code Playgroud)