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

破解

开发平台:

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 "jmagick.h"
  9. #include "magick_MontageInfo.h"
  10. /*
  11.  * Class:     magick_MontageInfo
  12.  * Method:    init
  13.  * Signature: (Lmagick/ImageInfo;)V
  14.  */
  15. JNIEXPORT void JNICALL Java_magick_MontageInfo_init
  16.   (JNIEnv *env, jobject self, jobject imageInfo)
  17. {
  18.     ImageInfo *info;
  19.     MontageInfo *montageInfo;
  20.     /* Obtain the ImageInfo */
  21.     info = (ImageInfo*) getHandle(env, imageInfo, "imageInfoHandle", NULL);
  22.     if (info == NULL) {
  23.         throwMagickException(env, "Unable to obtain ImageInfo handle");
  24.         return;
  25.     }
  26.     /* Initialise the MontageInfo handle, allocating memory if required */
  27.     montageInfo =
  28.         (MontageInfo*) getHandle(env, self, "montageInfoHandle", NULL);
  29.     if (montageInfo == NULL) {
  30.         montageInfo = (MontageInfo*) AcquireMemory(sizeof(MontageInfo));
  31.         if (montageInfo == NULL) {
  32.             throwMagickException(env,
  33.                                  "Unable to allocate "
  34.                                  "memory for MontageInfo");
  35.             return;
  36.         }
  37.     }
  38.     GetMontageInfo(info, montageInfo);
  39.     setHandle(env, self, "montageInfoHandle", (void*) montageInfo, NULL);
  40. }
  41. /*
  42.  * Class:     magick_MontageInfo
  43.  * Method:    destroyMontageInfo
  44.  * Signature: ()V
  45.  */
  46. JNIEXPORT void JNICALL Java_magick_MontageInfo_destroyMontageInfo
  47.   (JNIEnv *env, jobject self)
  48. {
  49.     MontageInfo *montageInfo = NULL;
  50.     jfieldID handleFid = 0;
  51.     montageInfo = (MontageInfo*) getHandle(env, self,
  52.                                            "montageInfoHandle", &handleFid);
  53.     if (montageInfo != NULL) {
  54. setHandle(env, self, "montageInfoHandle", NULL, &handleFid);
  55. DestroyMontageInfo(montageInfo);
  56.     }
  57. }
  58. /*
  59.  * Class:     magick_MontageInfo
  60.  * Method:    setGeometry
  61.  * Signature: (Ljava/lang/String;)V
  62.  */
  63. setStringMethod(Java_magick_MontageInfo_setGeometry,
  64. geometry,
  65. "montageInfoHandle",
  66. MontageInfo)
  67. /*
  68.  * Class:     magick_MontageInfo
  69.  * Method:    getGeometry
  70.  * Signature: ()Ljava/lang/String;
  71.  */
  72. getStringMethod(Java_magick_MontageInfo_getGeometry,
  73. geometry,
  74. "montageInfoHandle",
  75. MontageInfo)
  76. /*
  77.  * Class:     magick_MontageInfo
  78.  * Method:    setTile
  79.  * Signature: (Ljava/lang/String;)V
  80.  */
  81. setStringMethod(Java_magick_MontageInfo_setTile,
  82. tile,
  83. "montageInfoHandle",
  84. MontageInfo)
  85. /*
  86.  * Class:     magick_MontageInfo
  87.  * Method:    getTile
  88.  * Signature: ()Ljava/lang/String;
  89.  */
  90. getStringMethod(Java_magick_MontageInfo_getTile,
  91. tile,
  92. "montageInfoHandle",
  93. MontageInfo)
  94. /*
  95.  * Class:     magick_MontageInfo
  96.  * Method:    setTitle
  97.  * Signature: (Ljava/lang/String;)V
  98.  */
  99. setStringMethod(Java_magick_MontageInfo_setTitle,
  100. title,
  101. "montageInfoHandle",
  102. MontageInfo)
  103. /*
  104.  * Class:     magick_MontageInfo
  105.  * Method:    getTitle
  106.  * Signature: ()Ljava/lang/String;
  107.  */
  108. getStringMethod(Java_magick_MontageInfo_getTitle,
  109. title,
  110. "montageInfoHandle",
  111. MontageInfo)
  112. /*
  113.  * Class:     magick_MontageInfo
  114.  * Method:    setFrame
  115.  * Signature: (Ljava/lang/String;)V
  116.  */
  117. setStringMethod(Java_magick_MontageInfo_setFrame,
  118. frame,
  119. "montageInfoHandle",
  120. MontageInfo)
  121. /*
  122.  * Class:     magick_MontageInfo
  123.  * Method:    getFrame
  124.  * Signature: ()Ljava/lang/String;
  125.  */
  126. getStringMethod(Java_magick_MontageInfo_getFrame,
  127. frame,
  128. "montageInfoHandle",
  129. MontageInfo)
  130. /*
  131.  * Class:     magick_MontageInfo
  132.  * Method:    setTexture
  133.  * Signature: (Ljava/lang/String;)V
  134.  */
  135. setStringMethod(Java_magick_MontageInfo_setTexture,
  136. texture,
  137. "montageInfoHandle",
  138. MontageInfo)
  139. /*
  140.  * Class:     magick_MontageInfo
  141.  * Method:    getTexture
  142.  * Signature: ()Ljava/lang/String;
  143.  */
  144. getStringMethod(Java_magick_MontageInfo_getTexture,
  145. texture,
  146. "montageInfoHandle",
  147. MontageInfo)
  148. /*
  149.  * Class:     magick_MontageInfo
  150.  * Method:    setFont
  151.  * Signature: (Ljava/lang/String;)V
  152.  */
  153. setStringMethod(Java_magick_MontageInfo_setFont,
  154. font,
  155. "montageInfoHandle",
  156. MontageInfo)
  157. /*
  158.  * Class:     magick_MontageInfo
  159.  * Method:    getFont
  160.  * Signature: ()Ljava/lang/String;
  161.  */
  162. getStringMethod(Java_magick_MontageInfo_getFont,
  163. font,
  164. "montageInfoHandle",
  165. MontageInfo)
  166. /*
  167.  * Class:     magick_MontageInfo
  168.  * Method:    setPointSize
  169.  * Signature: (D)V
  170.  */
  171. setDoubleMethod(Java_magick_MontageInfo_setPointSize,
  172.                 pointsize,
  173.                 "montageInfoHandle",
  174.                 MontageInfo)
  175. /*
  176.  * Class:     magick_MontageInfo
  177.  * Method:    getPointSize
  178.  * Signature: ()D
  179.  */
  180. getDoubleMethod(Java_magick_MontageInfo_getPointSize,
  181.                 pointsize,
  182.                 "montageInfoHandle",
  183.                 MontageInfo)
  184. /*
  185.  * Class:     magick_MontageInfo
  186.  * Method:    setBorderWidth
  187.  * Signature: (I)V
  188.  */
  189. setIntMethod(Java_magick_MontageInfo_setBorderWidth,
  190.              border_width,
  191.              "montageInfoHandle",
  192.              MontageInfo)
  193. /*
  194.  * Class:     magick_MontageInfo
  195.  * Method:    getBorderWidth
  196.  * Signature: ()I
  197.  */
  198. getIntMethod(Java_magick_MontageInfo_getBorderWidth,
  199.              border_width,
  200.              "montageInfoHandle",
  201.              MontageInfo)
  202. /*
  203.  * Class:     magick_MontageInfo
  204.  * Method:    setGravity
  205.  * Signature: (I)V
  206.  */
  207. setIntMethod(Java_magick_MontageInfo_setGravity,
  208.              gravity,
  209.              "montageInfoHandle",
  210.              MontageInfo)
  211. /*
  212.  * Class:     magick_MontageInfo
  213.  * Method:    getGravity
  214.  * Signature: ()I
  215.  */
  216. getIntMethod(Java_magick_MontageInfo_getGravity,
  217.              gravity,
  218.              "montageInfoHandle",
  219.              MontageInfo)
  220. /*
  221.  * Class:     magick_MontageInfo
  222.  * Method:    setShadow
  223.  * Signature: (Z)V
  224.  */
  225. setBoolMethod(Java_magick_MontageInfo_setShadow,
  226.               shadow,
  227.               "montageInfoHandle",
  228.               MontageInfo)
  229. /*
  230.  * Class:     magick_MontageInfo
  231.  * Method:    getShadow
  232.  * Signature: ()Z
  233.  */
  234. getBoolMethod(Java_magick_MontageInfo_getShadow,
  235.               shadow,
  236.               "montageInfoHandle",
  237.               MontageInfo)
  238. /*
  239.  * Class:     magick_MontageInfo
  240.  * Method:    setFill
  241.  * Signature: (Lmagick/PixelPacket;)V
  242.  */
  243. setPixelPacketMethod(Java_magick_MontageInfo_setFill,
  244.                      fill,
  245.                      "montageInfoHandle",
  246.                      MontageInfo)
  247. /*
  248.  * Class:     magick_MontageInfo
  249.  * Method:    getFill
  250.  * Signature: ()Z
  251.  */
  252. getPixelPacketMethod(Java_magick_MontageInfo_getFill,
  253.                      fill,
  254.                      "montageInfoHandle",
  255.                      MontageInfo)
  256. /*
  257.  * Class:     magick_MontageInfo
  258.  * Method:    setStroke
  259.  * Signature: (Lmagick/PixelPacket;)V
  260.  */
  261. setPixelPacketMethod(Java_magick_MontageInfo_setStroke,
  262.                      stroke,
  263.                      "montageInfoHandle",
  264.                      MontageInfo)
  265. /*
  266.  * Class:     magick_MontageInfo
  267.  * Method:    getStroke
  268.  * Signature: ()Z
  269.  */
  270. getPixelPacketMethod(Java_magick_MontageInfo_getStroke,
  271.                      stroke,
  272.                      "montageInfoHandle",
  273.                      MontageInfo)
  274. /*
  275.  * Class:     magick_MontageInfo
  276.  * Method:    setBackgroundColor
  277.  * Signature: (Lmagick/PixelPacket;)V
  278.  */
  279. setPixelPacketMethod(Java_magick_MontageInfo_setBackgroundColor,
  280.                      background_color,
  281.                      "montageInfoHandle",
  282.                      MontageInfo)
  283. /*
  284.  * Class:     magick_MontageInfo
  285.  * Method:    getBackgroundColor
  286.  * Signature: ()Z
  287.  */
  288. getPixelPacketMethod(Java_magick_MontageInfo_getBackgroundColor,
  289.                      background_color,
  290.                      "montageInfoHandle",
  291.                      MontageInfo)
  292. /*
  293.  * Class:     magick_MontageInfo
  294.  * Method:    setBorderColor
  295.  * Signature: (Lmagick/PixelPacket;)V
  296.  */
  297. setPixelPacketMethod(Java_magick_MontageInfo_setBorderColor,
  298.                      border_color,
  299.                      "montageInfoHandle",
  300.                      MontageInfo)
  301. /*
  302.  * Class:     magick_MontageInfo
  303.  * Method:    getBorderColor
  304.  * Signature: ()Z
  305.  */
  306. getPixelPacketMethod(Java_magick_MontageInfo_getBorderColor,
  307.                      border_color,
  308.                      "montageInfoHandle",
  309.                      MontageInfo)
  310. /*
  311.  * Class:     magick_MontageInfo
  312.  * Method:    setMatteColor
  313.  * Signature: (Lmagick/PixelPacket;)V
  314.  */
  315. setPixelPacketMethod(Java_magick_MontageInfo_setMatteColor,
  316.                      matte_color,
  317.                      "montageInfoHandle",
  318.                      MontageInfo)
  319. /*
  320.  * Class:     magick_MontageInfo
  321.  * Method:    getMatteColor
  322.  * Signature: ()Z
  323.  */
  324. getPixelPacketMethod(Java_magick_MontageInfo_getMatteColor,
  325.                      matte_color,
  326.                      "montageInfoHandle",
  327.                      MontageInfo)
  328. /*
  329.  * Class:     magick_MontageInfo
  330.  * Method:    setFileName
  331.  * Signature: (Ljava/lang/String;)V
  332.  */
  333. JNIEXPORT void JNICALL Java_magick_MontageInfo_setFileName
  334.   (JNIEnv *env, jobject self, jstring fileName)
  335. {
  336.     MontageInfo *montageInfo = NULL;
  337.     const char *cstr = NULL;
  338.     montageInfo = (MontageInfo*) getHandle(env, self,
  339.                                            "montageInfoHandle", NULL);
  340.     if (montageInfo == NULL) {
  341.         throwMagickException(env, "Unable to obtain MontageInfo handle");
  342.         return;
  343.     }
  344.     cstr = (*env)->GetStringUTFChars(env, fileName, 0);
  345.     strcpy(montageInfo->filename, cstr);
  346.     (*env)->ReleaseStringUTFChars(env, fileName, cstr);
  347. }
  348. /*
  349.  * Class:     magick_MontageInfo
  350.  * Method:    getFileName
  351.  * Signature: ()Ljava/lang/String;
  352.  */
  353. JNIEXPORT jstring JNICALL Java_magick_MontageInfo_getFileName
  354.   (JNIEnv *env, jobject self)
  355. {
  356.     MontageInfo *montageInfo = NULL;
  357.     montageInfo =
  358.         (MontageInfo*) getHandle(env, self, "montageInfoHandle", NULL);
  359.     if (montageInfo == NULL) {
  360. throwMagickException(env, "Unable to retrieve MontageInfo handle");
  361. return NULL;
  362.     }
  363.     return (*env)->NewStringUTF(env, montageInfo->filename);
  364. }