static int CompareMain(int argc,char **argv) { char *metadata; const char *option; ExceptionInfo *exception; ImageInfo *image_info; MagickBooleanType dissimilar, status; MagickCoreGenesis(*argv,MagickTrue); exception=AcquireExceptionInfo(); image_info=AcquireImageInfo(); metadata=(char *) NULL; status=MagickCommandGenesis(image_info,CompareImageCommand,argc,argv, &metadata,exception); if (metadata != (char *) NULL) metadata=DestroyString(metadata); option=GetImageOption(image_info,"compare:dissimilar"); dissimilar=IsMagickTrue(option); image_info=DestroyImageInfo(image_info); exception=DestroyExceptionInfo(exception); MagickCoreTerminus(); if (dissimilar != MagickFalse) return(1); return(status != MagickFalse ? 0 : 2); }
static int IdentifyMain(int argc,char **argv) { char *metadata; ExceptionInfo *exception; ImageInfo *image_info; MagickBooleanType status; MagickCoreGenesis(*argv,MagickTrue); exception=AcquireExceptionInfo(); image_info=AcquireImageInfo(); metadata=(char *) NULL; status=MagickCommandGenesis(image_info,IdentifyImageCommand,argc,argv, &metadata,exception); if (metadata != (char *) NULL) metadata=DestroyString(metadata); image_info=DestroyImageInfo(image_info); exception=DestroyExceptionInfo(exception); MagickCoreTerminus(); return(status != MagickFalse ? 0 : 1); }
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a i n % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % */ int main(int argc,char **argv) { ExceptionInfo *exception; ImageInfo *image_info; MagickBooleanType status; MagickCoreGenesis(*argv,MagickTrue); exception=AcquireExceptionInfo(); image_info=AcquireImageInfo(); status=MagickCommandGenesis(image_info,MogrifyImageCommand,argc,argv, (char **) NULL,exception); image_info=DestroyImageInfo(image_info); exception=DestroyExceptionInfo(exception); MagickCoreTerminus(); return(status); }
static int MagickMain(int argc,char **argv) { #define MagickCommandSize(name,use_metadata,command) \ { (name), sizeof(name)-1, (use_metadata), (command) } typedef struct _CommandInfo { const char *client_name; size_t extent; MagickBooleanType use_metadata; MagickCommand command; } CommandInfo; const CommandInfo MagickCommands[] = { MagickCommandSize("magick", MagickFalse, MagickImageCommand), MagickCommandSize("convert", MagickFalse, ConvertImageCommand), MagickCommandSize("composite", MagickFalse, CompositeImageCommand), MagickCommandSize("identify", MagickTrue, IdentifyImageCommand), MagickCommandSize("animate", MagickFalse, AnimateImageCommand), MagickCommandSize("compare", MagickTrue, CompareImagesCommand), MagickCommandSize("conjure", MagickFalse, ConjureImageCommand), MagickCommandSize("display", MagickFalse, DisplayImageCommand), MagickCommandSize("import", MagickFalse, ImportImageCommand), MagickCommandSize("mogrify", MagickFalse, MogrifyImageCommand), MagickCommandSize("montage", MagickFalse, MontageImageCommand), MagickCommandSize("stream", MagickFalse, StreamImageCommand) }; char client_name[MagickPathExtent], *metadata; ExceptionInfo *exception; ImageInfo *image_info; int exit_code, offset; MagickBooleanType status; register ssize_t i; size_t number_commands; MagickCoreGenesis(*argv,MagickTrue); exception=AcquireExceptionInfo(); image_info=AcquireImageInfo(); GetPathComponent(argv[0],TailPath,client_name); number_commands=sizeof(MagickCommands)/sizeof(MagickCommands[0]); for (i=0; i < (ssize_t) number_commands; i++) { offset=LocaleNCompare(MagickCommands[i].client_name,client_name, MagickCommands[i].extent); if (offset == 0) break; } i%=(number_commands); if ((i == 0) && (argc > 1)) { for (i=1; i < (ssize_t) number_commands; i++) { offset=LocaleCompare(MagickCommands[i].client_name,argv[1]); if (offset == 0) { argc--; argv++; break; } } i%=number_commands; } metadata=(char *) NULL; status=MagickCommandGenesis(image_info,MagickCommands[i].command,argc,argv, MagickCommands[i].use_metadata ? &metadata : (char **) NULL,exception); if (metadata != (char *) NULL) { (void) fputs(metadata,stdout); metadata=DestroyString(metadata); } if (MagickCommands[i].command != CompareImagesCommand) exit_code=status != MagickFalse ? 0 : 1; else { if (status == MagickFalse) exit_code=2; else { const char *option; option=GetImageOption(image_info,"compare:dissimilar"); exit_code=IsStringTrue(option) ? 1 : 0; } } image_info=DestroyImageInfo(image_info); exception=DestroyExceptionInfo(exception); MagickCoreTerminus(); return(exit_code); }