Home | History | Annotate | Download | only in tests
      1 #include <stdio.h>
      2 #include <MagickWand/MagickWand.h>
      3 
      4 /* Simplify the exception handling
      5  * technically we should abort the program if
      6  *      severity >= ErrorException
      7  */
      8 void ThrowWandException(MagickWand *wand)
      9 { char
     10   *description;
     11 
     12   ExceptionType
     13   severity;
     14 
     15   description=MagickGetException(wand,&severity);
     16   (void) fprintf(stderr,"%s %s %lu %s\n",GetMagickModule(),description);
     17   description=(char *) MagickRelinquishMemory(description);
     18 }
     19 
     20 /* useful function especially after appending two wands together */
     21 #define SwapWands(a,b) { MagickWand *tmp=a; a=b; b=tmp; }
     22 
     23 int main(int argc, char *argv[])
     24 {
     25   MagickWand
     26     *wand,
     27     *output;
     28 
     29   MagickBooleanType
     30     status;
     31 
     32   printf("Check append when using 'LastIterator' on empty wand\n");
     33   printf("Result shoud be: 0123\n");
     34 
     35   MagickWandGenesis();
     36 
     37   wand = NewMagickWand();
     38 
     39   MagickSetLastIterator(wand);  /* to empty wand */
     40 
     41   status = MagickReadImage(wand, "font_0.gif" );
     42   if (status == MagickFalse)
     43     ThrowWandException(wand);
     44 
     45   status = MagickReadImage(wand, "font_1.gif" );
     46   if (status == MagickFalse)
     47     ThrowWandException(wand);
     48 
     49   status = MagickReadImage(wand, "font_2.gif" );
     50   if (status == MagickFalse)
     51     ThrowWandException(wand);
     52 
     53   status = MagickReadImage(wand, "font_3.gif" );
     54   if (status == MagickFalse)
     55     ThrowWandException(wand);
     56 
     57   /* append all images together to create the output wand */
     58   MagickResetIterator(wand); /* append all images */
     59   output = MagickAppendImages(wand,MagickFalse);
     60   wand = DestroyMagickWand(wand);  /* finished - could swap here */
     61 
     62   /* Final output */
     63   status = MagickWriteImage(output,"show:");
     64   if (status == MagickFalse)
     65     ThrowWandException(output);
     66 
     67   output = DestroyMagickWand(output);
     68 
     69   MagickWandTerminus();
     70 }
     71 
     72