jni操作bitmap
来源:互联网 发布:java中的restfull接口 编辑:程序博客网 时间:2024/05/16 19:06
JNIEXPORT jint JNICALL JNI_SetImage(JNIEnv * env, jobject obj, jobject bitmap )
{
char *pData=0;
AndroidBitmapInfo info;
void* pixels;
int r=0;
if ((r = AndroidBitmap_getInfo(env, bitmap, &info)) < 0){
\\ERROR
return r;
}
\\尝试锁定bmp 同时获得pixel指针(图片内容)
if ((r = AndroidBitmap_lockPixels(env, bitmap, &pixels)) < 0){
//Lock Error
return r;
}else{
//Lock成功
// 此时 pixels 就是图片的首地址!!!
AndroidBitmap_unlockPixels(env, bitmap);\\最后用完了要解除图片锁定
{
char *pData=0;
AndroidBitmapInfo info;
void* pixels;
int r=0;
if ((r = AndroidBitmap_getInfo(env, bitmap, &info)) < 0){
\\ERROR
return r;
}
\\尝试锁定bmp 同时获得pixel指针(图片内容)
if ((r = AndroidBitmap_lockPixels(env, bitmap, &pixels)) < 0){
//Lock Error
return r;
}else{
//Lock成功
// 此时 pixels 就是图片的首地址!!!
AndroidBitmap_unlockPixels(env, bitmap);\\最后用完了要解除图片锁定
}
a.编写JNI接口函数
//java接口函数private static native int processBitmap(Bitmap bitmap);//对应C++函数JNIEXPORT jint JNICALL Java_com_example_test_nativeprocess_processBitmap(JNIEnv *env, jclass,jobject bmpObj);
b.添加#include<android/bitmap.h>语句
#include<android/bitmap.h>
c.获取像素数据指针,进行操作
AndroidBitmapInfo bmpInfo={0}; if(AndroidBitmap_getInfo(env,bmpObj,&bmpInfo)<0) {return -1} int* dataFromBmp=NULL; if(AndroidBitmap_lockPixels(env,bmpObj,(void**)&dataFromBmp)) {return -1;}
AndroidBitmap_lockPixels用来获取数据指针,数据指针的参数类型是(void**),因为Android中的Bitmap一般存放的是ARGB格式,如果需要的是像素,可以用int*指针,如果需要的是通道,可以用unsigned char*。
d.操作完毕,释放指针
AndroidBitmap_unlockPixels(env,bmpObj);
这样,不需要做任何复制操作,就可以直接操作Bitmap中的像素数据。
0 0
- jni操作bitmap
- JNI获取Bitmap轮廓
- JNI---ILandroid/graphics/Bitmap;
- jni与bitmap
- Bitmap操作
- Bitmap操作
- bitmap操作
- Bitmap操作
- [Android]通过JNI访问并操作Bitmap的元素,支持RGB565和ARGB8888
- Android平台Camera实时滤镜实现方法探讨(一)--JNI操作Bitmap
- 有关bitmap的操作
- Bitmap的一些操作
- Android Bitmap 操作
- Bitmap 位图操作
- android bitmap 常见操作
- Bitmap的一些操作
- Bitmap的一些操作
- Java Bitmap操作详解
- 布局Layouts之TableLayout表格布局
- where
- 从电容的名称认识电容的作用
- 新的数据库连接池Tomcat jdbc pool配置(tomcat7及其以上版本才有)
- 机器学习之聚类算法(K-Means)
- jni操作bitmap
- JQ基础使用备忘技巧(一)
- Android Hook神器:XPosed入门与登陆劫持演示
- 向量空间初步
- Ubuntu12.04配置JDK1.8
- HttpClient和HttpURLConnection的区别
- 九度OJ 1181:遍历链表 (链表、排序)
- HTML1-排版,字体,列表,图像,超链接
- 【Servlet】Javaweb中文字转图片