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

破解

开发平台:

Java

  1. #include <jni.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <time.h>
  5. #include <sys/types.h>
  6. #include <magick/api.h>
  7. #include "jmagick.h"
  8. #include "magick_Magick.h"
  9. /*
  10.  * Class:     magick_Magick
  11.  * Method:    parseImageGeometry
  12.  * Signature: (Ljava/lang/String;Ljava/awt/Rectangle;)I
  13.  */
  14. JNIEXPORT jint JNICALL Java_magick_Magick_parseImageGeometry
  15.   (JNIEnv *env, jclass magickClass, jstring geometry, jobject rect)
  16. {
  17.     unsigned long x, y, width, height;
  18.     jint flags;
  19.     const char *cstr;
  20.     if (!getIntFieldValue(env, rect, "width", NULL, (jint *) &width) ||
  21. !getIntFieldValue(env, rect, "height", NULL, (jint *) &height) ||
  22. !getIntFieldValue(env, rect, "x", NULL, (jint *) &x) ||
  23. !getIntFieldValue(env, rect, "y", NULL, (jint *) &y)) {
  24.         throwMagickException(env, "Unable to obtain Rectangle values");
  25.         return 0;
  26.     }
  27.     cstr = (const char *) (*env)->GetStringUTFChars(env, geometry, 0);
  28.     flags = ParseImageGeometry(cstr, &x, &y, &width, &height);
  29.     (*env)->ReleaseStringUTFChars(env, geometry, cstr);
  30.     if (!setIntFieldValue(env, rect, "width", NULL, width) ||
  31. !setIntFieldValue(env, rect, "height", NULL, height) ||
  32. !setIntFieldValue(env, rect, "x", NULL, x) ||
  33. !setIntFieldValue(env, rect, "y", NULL, y)) {
  34.         throwMagickException(env, "Unable to set Rectangle values");
  35.         return 0;
  36.     }
  37.     return flags;
  38. }