#include #include "HGScannerLib.h" extern "C" JNIEXPORT jlong JNICALL Java_com_easing_java_HGScannerLib_LoadImage( JNIEnv* env, jclass clazz, jstring filePath) { printf("\nJava_com_easing_java_HGScannerLib_LoadImage\n"); jboolean isCopy; const char* ptr = env->GetStringUTFChars(filePath, &isCopy); printf("filePath=%s\n", ptr); HGLibImage img = HGLib_LoadImage(ptr); printf("img=0x%p\n", img); env->ReleaseStringUTFChars(filePath, ptr); printf("\n"); return (jlong)img; } extern "C" JNIEXPORT jint JNICALL Java_com_easing_java_HGScannerLib_SaveImage( JNIEnv* env, jclass clazz, jlong img, jstring filePath, jobject saveParam) { printf("\nJava_com_easing_java_HGScannerLib_SaveImage\n"); HGLibSaveImageParam saveParam2 = {0}; saveParam2.size = sizeof(HGLibSaveImageParam); jclass cls = env->GetObjectClass(saveParam); saveParam2.jpegQuality = (HGUInt)env->GetIntField(saveParam, env->GetFieldID(cls, "jpegQuality", "I")); saveParam2.tiffCompression = (HGUInt)env->GetIntField(saveParam, env->GetFieldID(cls, "tiffCompression", "I")); saveParam2.tiffJpegQuality = (HGUInt)env->GetIntField(saveParam, env->GetFieldID(cls, "tiffJpegQuality", "I")); saveParam2.ocr = (HGBool)env->GetIntField(saveParam, env->GetFieldID(cls, "ocr", "I")); printf("jpegQuality=%u\n", saveParam2.jpegQuality); printf("tiffCompression=%u\n", saveParam2.tiffCompression); printf("tiffJpegQuality=%u\n", saveParam2.tiffJpegQuality); printf("ocr=%d\n", saveParam2.ocr); jboolean isCopy; const char* ptr = env->GetStringUTFChars(filePath, &isCopy); printf("img=0x%p, filePath=%s\n", (HGLibImage)img, ptr); HGBool ret = HGLib_SaveImage((HGLibImage)img, ptr, &saveParam2); printf("ret=%d\n", ret); env->ReleaseStringUTFChars(filePath, ptr); printf("\n"); return ret; } extern "C" JNIEXPORT jint JNICALL Java_com_easing_java_HGScannerLib_ReleaseImage( JNIEnv* env, jclass clazz, jlong img) { printf("\nJava_com_easing_java_HGScannerLib_ReleaseImage\n"); HGBool ret = HGLib_ReleaseImage((HGLibImage)img); printf("ret=%d\n", ret); printf("\n"); return ret; } extern "C" JNIEXPORT jint JNICALL Java_com_easing_java_HGScannerLib_GetImageInfo( JNIEnv* env, jclass clazz, jlong img, jobject imgInfo) { printf("\nJava_com_easing_java_HGScannerLib_GetImageInfo\n"); HGLibImageInfo imgInfo2 = {0}; HGBool ret = HGLib_GetImageInfo((HGLibImage)img, &imgInfo2); printf("ret=%d\n", ret); if (ret) { jclass cls = env->GetObjectClass(imgInfo); env->SetIntField(imgInfo, env->GetFieldID(cls, "width", "I"), imgInfo2.width); env->SetIntField(imgInfo, env->GetFieldID(cls, "height", "I"), imgInfo2.height); env->SetIntField(imgInfo, env->GetFieldID(cls, "type", "I"), imgInfo2.type); env->SetIntField(imgInfo, env->GetFieldID(cls, "widthStep", "I"), imgInfo2.widthStep); env->SetIntField(imgInfo, env->GetFieldID(cls, "origin", "I"), imgInfo2.origin); } printf("\n"); return ret; } extern "C" JNIEXPORT jbyteArray JNICALL Java_com_easing_java_HGScannerLib_GetImageData( JNIEnv* env, jclass clazz, jlong img) { printf("\nJava_com_easing_java_HGScannerLib_GetImageData\n"); jbyteArray ret; HGByte *imgData2 = HGLib_GetImageData((HGLibImage)img); if (NULL != imgData2) { HGLibImageInfo imgInfo = {0}; if (HGLib_GetImageInfo((HGLibImage)img, &imgInfo)) { ret = env->NewByteArray(imgInfo.widthStep * imgInfo.height); env->SetByteArrayRegion(ret, 0, imgInfo.widthStep * imgInfo.height, (const jbyte*)imgData2); } } printf("\n"); return ret; }