jnigraphics

一、'jnigraphics'库:  

这是一个很小的库,展示一个稳定的,基于C语言的,接口,使本机代码安全地访问Java对象的像素缓冲区的位图.   

使用它,在你的源代码中包含<android/bitmap.h>,并链接库jnigraphics:LOCAL_LDLIBS + = -ljnigraphics   

详细信息,请阅读bitmap.h:build/platforms/android-8/arch-arm/usr/include/android/bitmap.h   

简单地说,典型的使用应该是这样的:

1 、根据JNI位图句柄,然后使用AndroidBitmap_getInfo()来检索有关信息 (例如它的宽度/高度/像素格式)   

2、使用AndroidBitmap_lockPixels()来锁定像素缓冲区和指针。直到AndroidBitmap_unlockPixels()被调用之前可确保像素不被移动  

3 、修改像素缓冲区,本地代码中根据其像素格式,宽度,步幅等   

4 、调用AndroidBitmap_unlockPixels()来解锁缓冲区。

二、图像处理的结果以bitmap返回,那么可以在java层创建一张bitmap,然后把该bitmap传到jni层,直接使用bitmap的数据指针来保存结果,这样就能

省掉拷贝数据的过程,在我的实验中,这个拷贝过程是很费时间的。

posted @ 2012-12-10 10:34  little_star  阅读(2474)  评论(0编辑  收藏  举报