资源简介
为android提供的二值化jni库,和完整demo,比Java代码的效率高10s! 一个基于jni的图像处理工具 包括二值化 灰度化 膨胀 腐蚀 等等 是android上图像处理的好例子 还能提高处理速度!实现点阵图的转化
代码片段和文件信息
/*
* ExecJava.c
*
* Created on: 2011-10-27
* Author: Join
*/
#include “ExecJava.h“
#include
#define LOG1(tag msg) __android_log_print(ANDROID_LOG_INFO tag msg)
#define LOG2(tag msg arg) __android_log_print(ANDROID_LOG_ERROR tag msg arg)
extern JNIEnv* jniEnv;
jclass JoinImage;
jobject mJoinImage;
jmethodID getTime;
jmethodID sayHello;
int GetProviderInstance(jclass obj_class);
/**
* 初始化 类、对象、方法
*/
int InitProvider() {
LOG1(“ExecJava“ “InitProvider Step 1“);
if (jniEnv == NULL) {
return 0;
}
if (JoinImage == NULL) {
JoinImage = (*jniEnv)->FindClass(jniEnv
“org/join/image/util/JoinImage“);
if (JoinImage == NULL) {
return -1;
}
LOG1(“ExecJava“ “InitProvider Step 2“);
}
if (mJoinImage == NULL) {
if (GetProviderInstance(JoinImage) != 1) {
(*jniEnv)->DeleteLocalRef(jniEnv JoinImage);
return -1;
}
LOG1(“ExecJava“ “InitProvider Step 3“);
}
if (getTime == NULL) {
getTime = (*jniEnv)->GetStaticMethodID(jniEnv JoinImage “getTime“
“()Ljava/lang/String;“);
if (getTime == NULL) {
(*jniEnv)->DeleteLocalRef(jniEnv JoinImage);
(*jniEnv)->DeleteLocalRef(jniEnv mJoinImage);
return -2;
}
LOG1(“ExecJava“ “InitProvider Step 4“);
}
if (sayHello == NULL) {
sayHello = (*jniEnv)->GetMethodID(jniEnv JoinImage “sayHello“
“(Ljava/lang/String;)V“);
if (sayHello == NULL) {
(*jniEnv)->DeleteLocalRef(jniEnv JoinImage);
(*jniEnv)->DeleteLocalRef(jniEnv mJoinImage);
(*jniEnv)->DeleteLocalRef(jniEnv getTime);
return -3;
}
LOG1(“ExecJava“ “InitProvider Step 5“);
}
LOG1(“ExecJava“ “InitProvider Step 6“);
return 1;
}
int GetProviderInstance(jclass obj_class) {
if (obj_class == NULL) {
return 0;
}
jmethodID construction_id = (*jniEnv)->GetMethodID(jniEnv obj_class
““ “()V“);
if (construction_id == 0) {
return -1;
}
mJoinImage = (*jniEnv)->Newobject(jniEnv obj_class construction_id);
if (mJoinImage == NULL) {
return -2;
}
return 1;
}
/**
* 获取时间 ---- 调用 Java 方法
*/
void GetTime() {
if (JoinImage == NULL || getTime == NULL) {
int result = InitProvider();
if (result != 1) {
return;
}
}
jstring jstr = NULL;
char* cstr = NULL;
LOG1(“ExecJava“ “GetTime Begin“);
jstr = (*jniEnv)->CallStaticobjectMethod(jniEnv JoinImage getTime);
cstr = (char*) (*jniEnv)->GetStringUTFChars(jniEnv jstr 0);
LOG2(“C调用Java“ “Success Get Time from Java Value = %s“ cstr);
LOG1(“ExecJava“ “GetTime End“);
(*jniEnv)->ReleaseStringUTFChars(jniEnv jstr cstr);
(*jniEnv)->DeleteLocalRef(jniEnv jstr);
}
/**
* SayHello ---- 调用 Java 方法
*/
void SayHello() {
if (JoinImage == NULL || mJoinImage == NULL || sayHello == NULL) {
int result = InitProvider();
if (result != 1) {
return;
}
}
jstring jstrMSG = NULL;
jstrMSG = (*jniEnv)->NewStringUTF(jniEnv
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-07-20 21:37 AndroidImage\
文件 364 2011-10-26 10:11 AndroidImage\.classpath
文件 848 2011-10-26 10:11 AndroidImage\.project
文件 967 2011-11-11 17:20 AndroidImage\AndroidManifest.xm
目录 0 2012-05-08 09:31 AndroidImage\assets\
目录 0 2012-07-20 21:37 AndroidImage\bin\
目录 0 2012-05-08 09:31 AndroidImage\bin\classes\
目录 0 2012-05-08 09:31 AndroidImage\gen\
目录 0 2012-07-20 21:37 AndroidImage\jni\
文件 4796 2012-02-04 15:01 AndroidImage\jni\.cproject
文件 2445 2012-02-04 15:01 AndroidImage\jni\.project
文件 294 2011-10-28 11:12 AndroidImage\jni\Android.mk
文件 3270 2011-10-28 13:19 AndroidImage\jni\ExecJava.c
文件 248 2011-10-27 20:40 AndroidImage\jni\ExecJava.h
文件 52497 2011-11-18 11:28 AndroidImage\jni\JoinImage.c
文件 2440 2011-11-16 14:01 AndroidImage\jni\JoinImage.h
目录 0 2012-07-20 21:37 AndroidImage\libs\
目录 0 2012-07-20 21:37 AndroidImage\libs\armeabi\
文件 17632 2012-02-04 15:01 AndroidImage\libs\armeabi\libJoinImage.so
目录 0 2012-07-20 21:37 AndroidImage\obj\
目录 0 2012-07-20 21:37 AndroidImage\obj\local\
目录 0 2012-07-20 21:37 AndroidImage\obj\local\armeabi\
文件 79934 2011-11-18 13:30 AndroidImage\obj\local\armeabi\libJoinImage.so
目录 0 2012-07-20 21:37 AndroidImage\obj\local\armeabi\objs\
目录 0 2012-07-20 21:37 AndroidImage\obj\local\armeabi\objs\JoinImage\
文件 29396 2011-10-28 13:19 AndroidImage\obj\local\armeabi\objs\JoinImage\ExecJava.o
文件 4091 2011-10-28 13:19 AndroidImage\obj\local\armeabi\objs\JoinImage\ExecJava.o.d
文件 92880 2011-11-18 13:30 AndroidImage\obj\local\armeabi\objs\JoinImage\JoinImage.o
文件 4984 2011-11-18 13:30 AndroidImage\obj\local\armeabi\objs\JoinImage\JoinImage.o.d
文件 1248 2011-10-26 10:11 AndroidImage\proguard.cfg
文件 360 2011-10-26 10:11 AndroidImage\project.properties
............此处省略24个文件信息
相关资源
- 基于Android平台:四则运算计算器源码
- android的搜索云图特效
- android小米文件管理器源码
- qt for android 实现悬浮窗
- android 判断gps是否开的方法
- android游戏《魔塔》详细工程代码
- android 手电筒
- python多渠道打包所需的文件
- Android做的计算器
- android简繁体转换包jcc-bate-0.7.3.jar
- java做服务器 android做客户端 实现聊天
- mjpegstream android客户端
- android开发的猜数字游戏详细注释
- android自定义相机带取景框
- android 的一个通讯录小程序
-
修改二进制文件AndroidManifest.xm
l文件 - android自定义veiw——波浪线
- 史上最强Android 开启照相或者是从本地
- Android中实现GPS定位功能
- Android 数据库自定义日历签到
- 基于Android的机票预订系统的设计与实
- Android:利用EditText和ListView 实现动态
- android声道切换代码
- 最简单的android TXT阅读器 源码 注释很
- adnroid开发框架rxjava+dagger2+retrofit2okh
- Android静态人脸识别
- 星座查询android源代码
- android加密日记本源码
- Android放大镜实现
- Android、Java、Web三端通用的RSA和AES工具
评论
共有 条评论