资源简介
为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手机工具ADB.exe
- adb 1.0.31版本--解决4.3android系统adb of
- AndroidStudio版直连sqlserver
- android带百分比进度条的文件上传,使
- 美食天下项目Android版源码和Web版源码
- Android之自定义ToggleButton使用
- Android非常漂亮的登录界面
- pc与android通过usb socket实现手机通信
- android毕业设计
- 百度地图自定义Markerandroid
- Android分区工具包
- android-support-v4.jar已打包进去源代码
- u-blox_Android_GNSS_Driver_v3.10驱动源码+中
- 个人根据Android移动开发案例详解手写
- android 视频播放器 项目和原码
- Android【动画】【特效】 17种动画特效
- 基于Android智能家居详细设计(经典)
- android通过JDBC连接Mysql数据库
- Android通讯录的源代码
- android 瀑布流Demo
- 指纹传感器FPC1080在android下的驱动
- delphi xe5 android 调用照相机摄像头拍照
- Android手机连连看游戏源码
- android-sdk-windows v2.3离线完整版
- android 底部弹出菜单(带透明背景)
- Android工程模式简介.rar
- Android蓝牙和Cors网络开发源码
- Android powermanger wakelock
- Android v7的一些jar包
- 最新android supportV7包
评论
共有 条评论