magick_MagickInfo.c
上传用户:qingzhou
上传日期:2013-04-21
资源大小:733k
文件大小:2k
源码类别:

破解

开发平台:

Java

  1. #include <jni.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdio.h>
  5. #include <time.h>
  6. #include <sys/types.h>
  7. #include <magick/api.h>
  8. #include "magick_MagickInfo.h"
  9. #include "jmagick.h"
  10. /*
  11.  * Class:     magick_MagickInfo
  12.  * Method:    init
  13.  * Signature: ()V
  14.  */
  15. JNIEXPORT void JNICALL Java_magick_MagickInfo_init
  16.   (JNIEnv *env, jobject self, jstring modname)
  17. {
  18.     MagickInfo *magickInfo = NULL;
  19.     jfieldID fid = 0;
  20.     ExceptionInfo exception;
  21.     const char *cstr = NULL;
  22.     
  23.     magickInfo = (MagickInfo*) getHandle(env, self, "magickInfoHandle", &fid);
  24.     GetExceptionInfo(&exception);
  25.     cstr = (*env)->GetStringUTFChars(env, modname, 0);
  26.     if (cstr == NULL)
  27.         return; // out of memory
  28.     
  29.     magickInfo = (MagickInfo*) GetMagickInfo(cstr, &exception);
  30.        
  31.     // release the string
  32.     (*env)->ReleaseStringUTFChars(env, modname, cstr);
  33.     if (magickInfo == NULL) {
  34.         throwMagickApiException(env, "Unable to read magick info", &exception);
  35.         DestroyExceptionInfo(&exception);
  36.         return;
  37.     }
  38.     DestroyExceptionInfo(&exception);
  39.     setHandle(env, self, "magickInfoHandle", (void*) magickInfo, &fid);
  40. }
  41. /*
  42.  * Class:     magick_MagickInfo
  43.  * Method:    destroyMagickInfo
  44.  * Signature: ()V
  45.  */
  46. JNIEXPORT void JNICALL Java_magick_MagickInfo_destroyMagickInfo
  47.   (JNIEnv *env, jobject self)
  48. {
  49.     MagickInfo *magickInfo = NULL;
  50.     jfieldID handleFid = 0;
  51.     magickInfo = (MagickInfo*) getHandle(env, self,
  52.        "magickInfoHandle", &handleFid);
  53.     if (magickInfo != NULL) {
  54. setHandle(env, self, "magickInfoHandle", NULL, &handleFid);
  55. /* DestroyMagickInfo(); */
  56.     }
  57. }
  58. /*
  59.  * Class:     magick_MagickInfo
  60.  * Method:    getDescription
  61.  * Signature: ()Ljava/lang/String;
  62.  */
  63. getStringMethod(Java_magick_MagickInfo_getDescription,
  64. description,
  65. "magickInfoHandle",
  66. MagickInfo)