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

破解

开发平台:

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_ImageInfo.h"
  9. #include "jmagick.h"
  10. /*
  11.  * Class:     magick_ImageInfo
  12.  * Method:    init
  13.  * Signature: ()V
  14.  */
  15. JNIEXPORT void JNICALL Java_magick_ImageInfo_init
  16.     (JNIEnv *env, jobject obj)
  17. {
  18.     ImageInfo *imageInfo = NULL;
  19.     jfieldID fid = 0;
  20.     imageInfo = (ImageInfo*) getHandle(env, obj, "imageInfoHandle", &fid);
  21.     if (imageInfo == NULL) {
  22. imageInfo = (ImageInfo *) AcquireMemory(sizeof(ImageInfo));
  23. if (imageInfo == NULL) {
  24.     throwMagickException(env, "Unable to allocate memory for handle");
  25.     return;
  26. }
  27.     }
  28.     GetImageInfo(imageInfo);
  29.     setHandle(env, obj, "imageInfoHandle", (void*) imageInfo, &fid);
  30. }
  31. /*
  32.  * Class:     magick_ImageInfo
  33.  * Method:    setFileName
  34.  * Signature: (Ljava/lang/String;)V
  35.  */
  36. JNIEXPORT void JNICALL Java_magick_ImageInfo_setFileName
  37.     (JNIEnv *env, jobject obj, jstring fileName)
  38. {
  39.     ImageInfo *imageInfo = NULL;
  40.     jfieldID handleFid = 0;
  41.     const char *cstr = NULL;
  42.     imageInfo = (ImageInfo*) getHandle(env, obj,
  43.        "imageInfoHandle", &handleFid);
  44.     if (imageInfo == NULL) {
  45. imageInfo = (ImageInfo *) AcquireMemory(sizeof(ImageInfo));
  46. if (imageInfo == NULL) {
  47.     throwMagickException(env, "Unable to allow memory for handle");
  48.     return;
  49. }
  50. GetImageInfo(imageInfo);
  51. setHandle(env, obj, "imageInfoHandle", (void*) imageInfo, &handleFid);
  52.     }
  53.     cstr = (*env)->GetStringUTFChars(env, fileName, 0);
  54.     strcpy(imageInfo->filename, cstr);
  55.     (*env)->ReleaseStringUTFChars(env, fileName, cstr);
  56. #ifdef DIAGNOSTIC
  57.     fprintf(stderr, "Set the file name in ImageInfo to %sn",
  58.             imageInfo->filename);
  59. #endif
  60. }
  61. /*
  62.  * Class:     magick_ImageInfo
  63.  * Method:    getFileName
  64.  * Signature: ()Ljava/lang/String;
  65.  */
  66. JNIEXPORT jstring JNICALL Java_magick_ImageInfo_getFileName
  67.     (JNIEnv *env, jobject obj)
  68. {
  69.     ImageInfo *imageInfo = NULL;
  70.     imageInfo = (ImageInfo*) getHandle(env, obj, "imageInfoHandle", NULL);
  71.     if (imageInfo == NULL) {
  72. throwMagickException(env, "Unable to retrieve ImageInfo handle");
  73. return NULL;
  74.     }
  75.     return (*env)->NewStringUTF(env, imageInfo->filename);
  76. }
  77. /*
  78.  * Class:     magick_ImageInfo
  79.  * Method:    setSubimage
  80.  * Signature: (I)V
  81.  */
  82. setIntMethod(Java_magick_ImageInfo_setSubimage,
  83.      subimage,
  84.      "imageInfoHandle",
  85.      ImageInfo)
  86. /*
  87.  * Class:     magick_ImageInfo
  88.  * Method:    getSubimage
  89.  * Signature: ()I
  90.  */
  91. getIntMethod(Java_magick_ImageInfo_getSubimage,
  92.      subimage,
  93.      "imageInfoHandle",
  94.      ImageInfo)
  95. /*
  96.  * Class:     magick_ImageInfo
  97.  * Method:    setSubrange
  98.  * Signature: (I)V
  99.  */
  100. setIntMethod(Java_magick_ImageInfo_setSubrange,
  101.      subrange,
  102.      "imageInfoHandle",
  103.      ImageInfo)
  104. /*
  105.  * Class:     magick_ImageInfo
  106.  * Method:    getSubrange
  107.  * Signature: ()I
  108.  */
  109. getIntMethod(Java_magick_ImageInfo_getSubrange,
  110.      subrange,
  111.      "imageInfoHandle",
  112.      ImageInfo)
  113. /*
  114.  * Class:     magick_ImageInfo
  115.  * Method:    setServerName
  116.  * Signature: (Ljava/lang/String;)V
  117.  */
  118. setStringMethod(Java_magick_ImageInfo_setServerName,
  119. server_name,
  120. "imageInfoHandle",
  121. ImageInfo)
  122. /*
  123.  * Class:     magick_ImageInfo
  124.  * Method:    getServerName
  125.  * Signature: ()Ljava/lang/String;
  126.  */
  127. getStringMethod(Java_magick_ImageInfo_getServerName,
  128. server_name,
  129. "imageInfoHandle",
  130. ImageInfo)
  131. /*
  132.  * Class:     magick_ImageInfo
  133.  * Method:    setFont
  134.  * Signature: (Ljava/lang/String;)V
  135.  */
  136. setStringMethod(Java_magick_ImageInfo_setFont,
  137. font,
  138. "imageInfoHandle",
  139. ImageInfo)
  140. /*
  141.  * Class:     magick_ImageInfo
  142.  * Method:    getFont
  143.  * Signature: ()Ljava/lang/String;
  144.  */
  145. getStringMethod(Java_magick_ImageInfo_getFont,
  146. font,
  147. "imageInfoHandle",
  148. ImageInfo)
  149. /*
  150.  * Class:     magick_ImageInfo
  151.  * Method:    setSize
  152.  * Signature: (Ljava/lang/String;)V
  153.  */
  154. setStringMethod(Java_magick_ImageInfo_setSize,
  155. size,
  156. "imageInfoHandle",
  157. ImageInfo)
  158. /*
  159.  * Class:     magick_ImageInfo
  160.  * Method:    getSize
  161.  * Signature: ()Ljava/lang/String;
  162.  */
  163. getStringMethod(Java_magick_ImageInfo_getSize,
  164. size,
  165. "imageInfoHandle",
  166. ImageInfo)
  167. /*
  168.  * Class:     magick_ImageInfo
  169.  * Method:    setTile
  170.  * Signature: (Ljava/lang/String;)V
  171.  */
  172. setStringMethod(Java_magick_ImageInfo_setTile,
  173. tile,
  174. "imageInfoHandle",
  175. ImageInfo)
  176. /*
  177.  * Class:     magick_ImageInfo
  178.  * Method:    getTile
  179.  * Signature: ()Ljava/lang/String;
  180.  */
  181. getStringMethod(Java_magick_ImageInfo_getTile,
  182. tile,
  183. "imageInfoHandle",
  184. ImageInfo)
  185. /*
  186.  * Class:     magick_ImageInfo
  187.  * Method:    setDensity
  188.  * Signature: (Ljava/lang/String;)V
  189.  */
  190. setStringMethod(Java_magick_ImageInfo_setDensity,
  191. density,
  192. "imageInfoHandle",
  193. ImageInfo)
  194. /*
  195.  * Class:     magick_ImageInfo
  196.  * Method:    getDensity
  197.  * Signature: ()Ljava/lang/String;
  198.  */
  199. getStringMethod(Java_magick_ImageInfo_getDensity,
  200. density,
  201. "imageInfoHandle",
  202. ImageInfo)
  203. /*
  204.  * Class:     magick_ImageInfo
  205.  * Method:    setPage
  206.  * Signature: (Ljava/lang/String;)V
  207.  */
  208. setStringMethod(Java_magick_ImageInfo_setPage,
  209. page,
  210. "imageInfoHandle",
  211. ImageInfo)
  212. /*
  213.  * Class:     magick_ImageInfo
  214.  * Method:    getPage
  215.  * Signature: ()Ljava/lang/String;
  216.  */
  217. getStringMethod(Java_magick_ImageInfo_getPage,
  218. page,
  219. "imageInfoHandle",
  220. ImageInfo)
  221. /*
  222.  * Class:     magick_ImageInfo
  223.  * Method:    setTexture
  224.  * Signature: (Ljava/lang/String;)V
  225.  */
  226. setStringMethod(Java_magick_ImageInfo_setTexture,
  227. texture,
  228. "imageInfoHandle",
  229. ImageInfo)
  230. /*
  231.  * Class:     magick_ImageInfo
  232.  * Method:    getTexture
  233.  * Signature: ()Ljava/lang/String;
  234.  */
  235. getStringMethod(Java_magick_ImageInfo_getTexture,
  236. texture,
  237. "imageInfoHandle",
  238. ImageInfo)
  239. /*
  240.  * Class:     magick_ImageInfo
  241.  * Method:    setView
  242.  * Signature: (Ljava/lang/String;)V
  243.  */
  244. setStringMethod(Java_magick_ImageInfo_setView,
  245. view,
  246. "imageInfoHandle",
  247. ImageInfo)
  248. /*
  249.  * Class:     magick_ImageInfo
  250.  * Method:    getView
  251.  * Signature: ()Ljava/lang/String;
  252.  */
  253. getStringMethod(Java_magick_ImageInfo_getView,
  254. view,
  255. "imageInfoHandle",
  256. ImageInfo)
  257. /*
  258.  * Class:     magick_ImageInfo
  259.  * Method:    setAdjoin
  260.  * Signature: (I)V
  261.  */
  262. setIntMethod(Java_magick_ImageInfo_setAdjoin,
  263.      adjoin,
  264.      "imageInfoHandle",
  265.      ImageInfo)
  266. /*
  267.  * Class:     magick_ImageInfo
  268.  * Method:    getAdjoin
  269.  * Signature: ()I
  270.  */
  271. getIntMethod(Java_magick_ImageInfo_getAdjoin,
  272.      adjoin,
  273.      "imageInfoHandle",
  274.      ImageInfo)
  275. /*
  276.  * Class:     magick_ImageInfo
  277.  * Method:    setColorspace
  278.  * Signature: (I)V
  279.  */
  280. setIntMethod(Java_magick_ImageInfo_setColorspace,
  281.      colorspace,
  282.      "imageInfoHandle",
  283.      ImageInfo)
  284. /*
  285.  * Class:     magick_ImageInfo
  286.  * Method:    getColorspace
  287.  * Signature: ()I
  288.  */
  289. getIntMethod(Java_magick_ImageInfo_getColorspace,
  290.      colorspace,
  291.      "imageInfoHandle",
  292.      ImageInfo)
  293. /*
  294.  * Class:     magick_ImageInfo
  295.  * Method:    setCompression
  296.  * Signature: (I)V
  297.  */
  298. setIntMethod(Java_magick_ImageInfo_setCompression,
  299.      compression,
  300.      "imageInfoHandle",
  301.      ImageInfo)
  302. /*
  303.  * Class:     magick_ImageInfo
  304.  * Method:    getCompression
  305.  * Signature: ()I
  306.  */
  307. getIntMethod(Java_magick_ImageInfo_getCompression,
  308.      compression,
  309.      "imageInfoHandle",
  310.      ImageInfo)
  311. /*
  312.  * Class:     magick_ImageInfo
  313.  * Method:    setDither
  314.  * Signature: (I)V
  315.  */
  316. setIntMethod(Java_magick_ImageInfo_setDither,
  317.      dither,
  318.      "imageInfoHandle",
  319.      ImageInfo)
  320. /*
  321.  * Class:     magick_ImageInfo
  322.  * Method:    getDither
  323.  * Signature: ()I
  324.  */
  325. getIntMethod(Java_magick_ImageInfo_getDither,
  326.      dither,
  327.      "imageInfoHandle",
  328.      ImageInfo)
  329. /*
  330.  * Class:     magick_ImageInfo
  331.  * Method:    setInterlace
  332.  * Signature: (I)V
  333.  */
  334. setIntMethod(Java_magick_ImageInfo_setInterlace,
  335.      interlace,
  336.      "imageInfoHandle",
  337.      ImageInfo)
  338. /*
  339.  * Class:     magick_ImageInfo
  340.  * Method:    getInterlace
  341.  * Signature: ()I
  342.  */
  343. getIntMethod(Java_magick_ImageInfo_getInterlace,
  344.      interlace,
  345.      "imageInfoHandle",
  346.      ImageInfo)
  347. /*
  348.  * Class:     magick_ImageInfo
  349.  * Method:    setMonochrome
  350.  * Signature: (I)V
  351.  */
  352. setIntMethod(Java_magick_ImageInfo_setMonochrome,
  353.      monochrome,
  354.      "imageInfoHandle",
  355.      ImageInfo)
  356. /*
  357.  * Class:     magick_ImageInfo
  358.  * Method:    getMonochrome
  359.  * Signature: ()I
  360.  */
  361. getIntMethod(Java_magick_ImageInfo_getMonochrome,
  362.      monochrome,
  363.      "imageInfoHandle",
  364.      ImageInfo)
  365. /*
  366.  * Class:     magick_ImageInfo
  367.  * Method:    setPointSize
  368.  * Signature: (I)V
  369.  */
  370. setIntMethod(Java_magick_ImageInfo_setPointSize,
  371.      pointsize,
  372.      "imageInfoHandle",
  373.      ImageInfo)
  374. /*
  375.  * Class:     magick_ImageInfo
  376.  * Method:    getPointSize
  377.  * Signature: ()I
  378.  */
  379. getIntMethod(Java_magick_ImageInfo_getPointSize,
  380.      pointsize,
  381.      "imageInfoHandle",
  382.      ImageInfo)
  383. /*
  384.  * Class:     magick_ImageInfo
  385.  * Method:    setQuality
  386.  * Signature: (I)V
  387.  */
  388. setIntMethod(Java_magick_ImageInfo_setQuality,
  389.      quality,
  390.      "imageInfoHandle",
  391.      ImageInfo)
  392. /*
  393.  * Class:     magick_ImageInfo
  394.  * Method:    getQuality
  395.  * Signature: ()I
  396.  */
  397. getIntMethod(Java_magick_ImageInfo_getQuality,
  398.      quality,
  399.      "imageInfoHandle",
  400.      ImageInfo)
  401. /*
  402.  * Class:     magick_ImageInfo
  403.  * Method:    setVerbose
  404.  * Signature: (I)V
  405.  */
  406. setIntMethod(Java_magick_ImageInfo_setVerbose,
  407.      verbose,
  408.      "imageInfoHandle",
  409.      ImageInfo)
  410. /*
  411.  * Class:     magick_ImageInfo
  412.  * Method:    getVerbose
  413.  * Signature: ()I
  414.  */
  415. getIntMethod(Java_magick_ImageInfo_getVerbose,
  416.      verbose,
  417.      "imageInfoHandle",
  418.      ImageInfo)
  419. /*
  420.  * Class:     magick_ImageInfo
  421.  * Method:    setPreviewType
  422.  * Signature: (I)V
  423.  */
  424. setIntMethod(Java_magick_ImageInfo_setPreviewType,
  425.      preview_type,
  426.      "imageInfoHandle",
  427.      ImageInfo)
  428. /*
  429.  * Class:     magick_ImageInfo
  430.  * Method:    getPreviewType
  431.  * Signature: ()I
  432.  */
  433. getIntMethod(Java_magick_ImageInfo_getPreviewType,
  434.      preview_type,
  435.      "imageInfoHandle",
  436.      ImageInfo)
  437. /*
  438.  * Class:     magick_ImageInfo
  439.  * Method:    setPing
  440.  * Signature: (Z)V
  441.  */
  442. setBoolMethod(Java_magick_ImageInfo_setPing,
  443.         ping,
  444.       "imageInfoHandle",
  445.       ImageInfo)
  446. /*
  447.  * Class:     magick_ImageInfo
  448.  * Method:    getPing
  449.  * Signature: ()Z
  450.  */
  451. getBoolMethod(Java_magick_ImageInfo_getPing,
  452.       ping,
  453.       "imageInfoHandle",
  454.       ImageInfo)
  455. /*
  456.  * Class:     magick_ImageInfo
  457.  * Method:    destroyImageInfo
  458.  * Signature: ()V
  459.  */
  460. JNIEXPORT void JNICALL Java_magick_ImageInfo_destroyImageInfo
  461.     (JNIEnv *env, jobject obj)
  462. {
  463.     ImageInfo *imageInfo = NULL;
  464.     jfieldID handleFid = 0;
  465.     imageInfo = (ImageInfo*) getHandle(env, obj,
  466.        "imageInfoHandle", &handleFid);
  467.     if (imageInfo != NULL) {
  468. setHandle(env, obj, "imageInfoHandle", NULL, &handleFid);
  469. DestroyImageInfo(imageInfo);
  470.     }
  471. }
  472. /*
  473.  * Class:     magick_ImageInfo
  474.  * Method:    setMagick
  475.  * Signature: (Ljava/lang/String;)V
  476.  *
  477.  * Contributed by Abdulbaset Gaddah <agaddah@yahoo.com>
  478.  */
  479. JNIEXPORT void JNICALL Java_magick_ImageInfo_setMagick
  480.     (JNIEnv *env, jobject obj, jstring magick)
  481. {
  482.     ImageInfo *imageInfo = NULL;
  483.     jfieldID handleFid = 0;
  484.     const char *cstr = NULL;
  485.     imageInfo = (ImageInfo*) getHandle(env, obj,
  486.        "imageInfoHandle", &handleFid);
  487.     if (imageInfo == NULL) {
  488. imageInfo = (ImageInfo *) AcquireMemory(sizeof(ImageInfo));
  489. if (imageInfo == NULL) {
  490.     throwMagickException(env, "Unable to allocate memory for handle");
  491.     return;
  492. }
  493. GetImageInfo(imageInfo);
  494. setHandle(env, obj, "imageInfoHandle", (void*) imageInfo, &handleFid);
  495.     }
  496.     cstr = (*env)->GetStringUTFChars(env, magick, 0);
  497.     strcpy(imageInfo->magick, cstr);
  498.     (*env)->ReleaseStringUTFChars(env, magick, cstr);
  499. #ifdef DIAGNOSTIC
  500.     fprintf(stderr, "Set the magick member in ImageInfo to %sn",
  501.             imageInfo->magick);
  502. #endif
  503. }
  504. /*
  505.  * Class:     magick_ImageInfo
  506.  * Method:    getMagick
  507.  * Signature: ()Ljava/lang/String;
  508.  *
  509.  * Contributed by Abdulbaset Gaddah <agaddah@yahoo.com>
  510.  */
  511. JNIEXPORT jstring JNICALL Java_magick_ImageInfo_getMagick
  512.     (JNIEnv *env, jobject obj)
  513. {
  514.     ImageInfo *imageInfo = NULL;
  515.     imageInfo = (ImageInfo*) getHandle(env, obj, "imageInfoHandle", NULL);
  516.     if (imageInfo == NULL) {
  517. throwMagickException(env, "Unable to retrieve ImageInfo handle");
  518. return NULL;
  519.     }
  520.     return (*env)->NewStringUTF(env, imageInfo->magick);
  521. }
  522. /*
  523.  * Class:     magick_ImageInfo
  524.  * Method:    setUnits
  525.  * Signature: (I)V
  526.  */
  527. setIntMethod(Java_magick_ImageInfo_setUnits,
  528.      units,
  529.      "imageInfoHandle",
  530.      ImageInfo)
  531. /*
  532.  * Class:     magick_ImageInfo
  533.  * Method:    getUnits
  534.  * Signature: ()I
  535.  */
  536. getIntMethod(Java_magick_ImageInfo_getUnits,
  537.      units,
  538.      "imageInfoHandle",
  539.      ImageInfo)
  540. /*
  541.  * Class:     magick_ImageInfo
  542.  * Method:    setBorderColor
  543.  * Signature: (Lmagick/PixelPacket;)V
  544.  */
  545. setPixelPacketMethod(Java_magick_ImageInfo_setBorderColor,
  546.                      border_color,
  547.                      "imageInfoHandle",
  548.                      ImageInfo)
  549. /*
  550.  * Class:     magick_ImageInfo
  551.  * Method:    getBorderColor
  552.  * Signature: ()Lmagick/PixelPacket;
  553.  */
  554. getPixelPacketMethod(Java_magick_ImageInfo_getBorderColor,
  555.                      border_color,
  556.                      "imageInfoHandle",
  557.                      ImageInfo)