00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 #include "wand/studio.h"
00046 #include "wand/MagickWand.h"
00047 #include "wand/mogrify-private.h"
00048
00049
00050
00051
00052 #define ThrowFileException(exception,severity,tag,context) \
00053 { \
00054 (void) ThrowMagickException(exception,GetMagickModule(),severity, \
00055 tag == (const char *) NULL ? "unknown" : tag,"`%s': %s",context, \
00056 GetExceptionMessage(errno)); \
00057 }
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093 static MagickBooleanType ConcatenateImages(int argc,char **argv,
00094 ExceptionInfo *exception)
00095 {
00096 FILE
00097 *input,
00098 *output;
00099
00100 int
00101 c;
00102
00103 register long
00104 i;
00105
00106
00107
00108
00109 output=OpenMagickStream(argv[argc-1],"wb");
00110 if (output == (FILE *) NULL)
00111 {
00112 ThrowFileException(exception,FileOpenError,"UnableToOpenFile",
00113 argv[argc-1]);
00114 return(MagickFalse);
00115 }
00116 for (i=2; i < (long) (argc-1); i++)
00117 {
00118 input=OpenMagickStream(argv[i],"rb");
00119 if (input == (FILE *) NULL)
00120 ThrowFileException(exception,FileOpenError,"UnableToOpenFile",argv[i]);
00121 for (c=fgetc(input); c != EOF; c=fgetc(input))
00122 (void) fputc((char) c,output);
00123 (void) fclose(input);
00124 (void) remove(argv[i]);
00125 }
00126 (void) fclose(output);
00127 return(MagickTrue);
00128 }
00129
00130 static MagickBooleanType ConvertUsage(void)
00131 {
00132 static const char
00133 *miscellaneous[]=
00134 {
00135 "-debug events display copious debugging information",
00136 "-help print program options",
00137 "-list type print a list of supported option arguments",
00138 "-log format format of debugging information",
00139 "-version print version information",
00140 (char *) NULL
00141 },
00142 *operators[]=
00143 {
00144 "-adaptive-blur geometry",
00145 " adaptively blur pixels; decrease effect near edges",
00146 "-adaptive-resize geometry",
00147 " adaptively resize image using 'mesh' interpolation",
00148 "-adaptive-sharpen geometry",
00149 " adaptively sharpen pixels; increase effect near edges",
00150 "-alpha option on, activate, off, deactivate, set, opaque, copy",
00151 " transparent, extract, background, or shape",
00152 "-annotate geometry text",
00153 " annotate the image with text",
00154 "-auto-gamma automagically adjust gamma level of image",
00155 "-auto-level automagically adjust color levels of image",
00156 "-auto-orient automagically orient (rotate) image",
00157 "-bench iterations measure performance",
00158 "-black-threshold value",
00159 " force all pixels below the threshold into black",
00160 "-blue-shift factor simulate a scene at nighttime in the moonlight",
00161 "-blur geometry reduce image noise and reduce detail levels",
00162 "-border geometry surround image with a border of color",
00163 "-bordercolor color border color",
00164 "-cdl filename color correct with a color decision list",
00165 "-charcoal radius simulate a charcoal drawing",
00166 "-chop geometry remove pixels from the image interior",
00167 "-clamp restrict pixel range from 0 to the quantum depth",
00168 "-clip clip along the first path from the 8BIM profile",
00169 "-clip-mask filename associate a clip mask with the image",
00170 "-clip-path id clip along a named path from the 8BIM profile",
00171 "-colorize value colorize the image with the fill color",
00172 "-contrast enhance or reduce the image contrast",
00173 "-contrast-stretch geometry",
00174 " improve contrast by `stretching' the intensity range",
00175 "-convolve coefficients",
00176 " apply a convolution kernel to the image",
00177 "-cycle amount cycle the image colormap",
00178 "-decipher filename convert cipher pixels to plain pixels",
00179 "-deskew threshold straighten an image",
00180 "-despeckle reduce the speckles within an image",
00181 "-distort method args",
00182 " distort images according to given method ad args",
00183 "-draw string annotate the image with a graphic primitive",
00184 "-edge radius apply a filter to detect edges in the image",
00185 "-encipher filename convert plain pixels to cipher pixels",
00186 "-emboss radius emboss an image",
00187 "-enhance apply a digital filter to enhance a noisy image",
00188 "-equalize perform histogram equalization to an image",
00189 "-evaluate operator value",
00190 " evaluate an expression over image values",
00191 "-extent geometry set the image size",
00192 "-extract geometry extract area from image",
00193 "-fft implements the discrete Fourier transform (DFT)",
00194 "-flip flip image vertically",
00195 "-floodfill geometry color",
00196 " floodfill the image with color",
00197 "-flop flop image horizontally",
00198 "-frame geometry surround image with an ornamental border",
00199 "-function name paramters",
00200 " apply function over image values",
00201 "-gamma value level of gamma correction",
00202 "-gaussian-blur geometry",
00203 " reduce image noise and reduce detail levels",
00204 "-geometry geometry preferred size or location of the image",
00205 "-identify identify the format and characteristics of the image",
00206 "-ift implements the inverse discrete Fourier transform (DFT)",
00207 "-implode amount implode image pixels about the center",
00208 "-lat geometry local adaptive thresholding",
00209 "-layers method optimize, merge, or compare image layers",
00210 "-level value adjust the level of image contrast",
00211 "-level-colors color,color",
00212 " level image with the given colors",
00213 "-linear-stretch geometry",
00214 " improve contrast by `stretching with saturation'",
00215 "-liquid-rescale geometry",
00216 " rescale image with seam-carving",
00217 "-median radius apply a median filter to the image",
00218 "-modulate value vary the brightness, saturation, and hue",
00219 "-monochrome transform image to black and white",
00220 "-motion-blur geometry",
00221 " simulate motion blur",
00222 "-negate replace every pixel with its complementary color ",
00223 "-noise radius add or reduce noise in an image",
00224 "-normalize transform image to span the full range of colors",
00225 "-opaque color change this color to the fill color",
00226 "-ordered-dither NxN",
00227 " add a noise pattern to the image with specific",
00228 " amplitudes",
00229 "-paint radius simulate an oil painting",
00230 "-polaroid angle simulate a Polaroid picture",
00231 "-posterize levels reduce the image to a limited number of color levels",
00232 "-print string interpret string and print to console",
00233 "-profile filename add, delete, or apply an image profile",
00234 "-quantize colorspace reduce colors in this colorspace",
00235 "-radial-blur angle radial blur the image",
00236 "-raise value lighten/darken image edges to create a 3-D effect",
00237 "-random-threshold low,high",
00238 " random threshold the image",
00239 "-recolor matrix translate, scale, shear, or rotate image colors",
00240 "-region geometry apply options to a portion of the image",
00241 "-render render vector graphics",
00242 "-repage geometry size and location of an image canvas",
00243 "-resample geometry change the resolution of an image",
00244 "-resize geometry resize the image",
00245 "-roll geometry roll an image vertically or horizontally",
00246 "-rotate degrees apply Paeth rotation to the image",
00247 "-sample geometry scale image with pixel sampling",
00248 "-scale geometry scale the image",
00249 "-segment values segment an image",
00250 "-selective-blur geometry",
00251 " selectively blur pixels within a contrast threshold",
00252 "-sepia-tone threshold",
00253 " simulate a sepia-toned photo",
00254 "-set property value set an image property",
00255 "-shade degrees shade the image using a distant light source",
00256 "-shadow geometry simulate an image shadow",
00257 "-sharpen geometry sharpen the image",
00258 "-shave geometry shave pixels from the image edges",
00259 "-shear geometry slide one edge of the image along the X or Y axis",
00260 "-sigmoidal-contrast geometry",
00261 " increase the contrast without saturating highlights or shadows",
00262 "-sketch geometry simulate a pencil sketch",
00263 "-solarize threshold negate all pixels above the threshold level",
00264 "-sparse-color method args",
00265 " fill in a image based on a few color points",
00266 "-splice geometry splice the background color into the image",
00267 "-spread radius displace image pixels by a random amount",
00268 "-strip strip image of all profiles and comments",
00269 "-swirl degrees swirl image pixels about the center",
00270 "-threshold value threshold the image",
00271 "-thumbnail geometry create a thumbnail of the image",
00272 "-tile filename tile image when filling a graphic primitive",
00273 "-tint value tint the image with the fill color",
00274 "-transform affine transform image",
00275 "-transparent color make this color transparent within the image",
00276 "-transpose flip image vertically and rotate 90 degrees",
00277 "-transverse flop image horizontally and rotate 270 degrees",
00278 "-trim trim image edges",
00279 "-type type image type",
00280 "-unique-colors discard all but one of any pixel color",
00281 "-unsharp geometry sharpen the image",
00282 "-vignette geometry soften the edges of the image in vignette style",
00283 "-wave geometry alter an image along a sine wave",
00284 "-white-threshold value",
00285 " force all pixels above the threshold into white",
00286 (char *) NULL
00287 },
00288 *sequence_operators[]=
00289 {
00290 "-append append an image sequence",
00291 "-average average an image sequence",
00292 "-clut apply a color lookup table to the image",
00293 "-coalesce merge a sequence of images",
00294 "-combine combine a sequence of images",
00295 "-composite composite image",
00296 "-crop geometry cut out a rectangular region of the image",
00297 "-deconstruct break down an image sequence into constituent parts",
00298 "-flatten flatten a sequence of images",
00299 "-fx expression apply mathematical expression to an image channel(s)",
00300 "-hald-clut apply a Hald color lookup table to the image",
00301 "-morph value morph an image sequence",
00302 "-mosaic create a mosaic from an image sequence",
00303 "-process arguments process the image with a custom image filter",
00304 "-reverse reverse image sequence",
00305 "-separate separate an image channel into a grayscale image",
00306 "-write filename write images to this file",
00307 (char *) NULL
00308 },
00309 *settings[]=
00310 {
00311 "-adjoin join images into a single multi-image file",
00312 "-affine matrix affine transform matrix",
00313 "-alpha option activate, deactivate, reset, or set the alpha channel",
00314 "-antialias remove pixel-aliasing",
00315 "-authenticate password",
00316 " decipher image with this password",
00317 "-attenuate value lessen (or intensify) when adding noise to an image",
00318 "-background color background color",
00319 "-bias value add bias when convolving an image",
00320 "-black-point-compensation",
00321 " use black point compensation",
00322 "-blue-primary point chromaticity blue primary point",
00323 "-bordercolor color border color",
00324 "-caption string assign a caption to an image",
00325 "-channel type apply option to select image channels",
00326 "-colors value preferred number of colors in the image",
00327 "-colorspace type alternate image colorspace",
00328 "-comment string annotate image with comment",
00329 "-compose operator set image composite operator",
00330 "-compress type type of pixel compression when writing the image",
00331 "-define format:option",
00332 " define one or more image format options",
00333 "-delay value display the next image after pausing",
00334 "-density geometry horizontal and vertical density of the image",
00335 "-depth value image depth",
00336 "-display server get image or font from this X server",
00337 "-dispose method layer disposal method",
00338 "-dither method apply error diffusion to image",
00339 "-encoding type text encoding type",
00340 "-endian type endianness (MSB or LSB) of the image",
00341 "-family name render text with this font family",
00342 "-fill color color to use when filling a graphic primitive",
00343 "-filter type use this filter when resizing an image",
00344 "-font name render text with this font",
00345 "-format \"string\" output formatted image characteristics",
00346 "-fuzz distance colors within this distance are considered equal",
00347 "-gravity type horizontal and vertical text placement",
00348 "-green-primary point chromaticity green primary point",
00349 "-intent type type of rendering intent when managing the image color",
00350 "-interlace type type of image interlacing scheme",
00351 "-interline-spacing value",
00352 " set the space between two text lines",
00353 "-interpolate method pixel color interpolation method",
00354 "-interword-spacing value",
00355 " set the space between two words",
00356 "-kerning value set the space between two letters",
00357 "-label string assign a label to an image",
00358 "-limit type value pixel cache resource limit",
00359 "-loop iterations add Netscape loop extension to your GIF animation",
00360 "-mask filename associate a mask with the image",
00361 "-mattecolor color frame color",
00362 "-monitor monitor progress",
00363 "-orient type image orientation",
00364 "-page geometry size and location of an image canvas (setting)",
00365 "-ping efficiently determine image attributes",
00366 "-pointsize value font point size",
00367 "-preview type image preview type",
00368 "-quality value JPEG/MIFF/PNG compression level",
00369 "-quiet suppress all warning messages",
00370 "-red-primary point chromaticity red primary point",
00371 "-regard-warnings pay attention to warning messages",
00372 "-remap filename transform image colors to match this set of colors",
00373 "-respect-parentheses settings remain in effect until parenthesis boundary",
00374 "-sampling-factor geometry",
00375 " horizontal and vertical sampling factor",
00376 "-scene value image scene number",
00377 "-seed value seed a new sequence of pseudo-random numbers",
00378 "-size geometry width and height of image",
00379 "-stretch type render text with this font stretch",
00380 "-stroke color graphic primitive stroke color",
00381 "-strokewidth value graphic primitive stroke width",
00382 "-style type render text with this font style",
00383 "-taint image as ineligible for bi-modal delegate",
00384 "-texture filename name of texture to tile onto the image background",
00385 "-tile-offset geometry",
00386 " tile offset",
00387 "-treedepth value color tree depth",
00388 "-transparent-color color",
00389 " transparent color",
00390 "-undercolor color annotation bounding box color",
00391 "-units type the units of image resolution",
00392 "-verbose print detailed information about the image",
00393 "-view FlashPix viewing transforms",
00394 "-virtual-pixel method",
00395 " virtual pixel access method",
00396 "-weight type render text with this font weight",
00397 "-white-point point chromaticity white point",
00398 (char *) NULL
00399 },
00400 *stack_operators[]=
00401 {
00402 "-clone index clone an image",
00403 "-delete index delete the image from the image sequence",
00404 "-insert index insert last image into the image sequence",
00405 "-swap indexes swap two images in the image sequence",
00406 (char *) NULL
00407 };
00408
00409 const char
00410 **p;
00411
00412 (void) printf("Version: %s\n",GetMagickVersion((unsigned long *) NULL));
00413 (void) printf("Copyright: %s\n",GetMagickCopyright());
00414 (void) printf("Features: %s\n\n",GetMagickFeatures());
00415 (void) printf("Usage: %s [options ...] file [ [options ...] "
00416 "file ...] [options ...] file\n",GetClientName());
00417 (void) printf("\nImage Settings:\n");
00418 for (p=settings; *p != (char *) NULL; p++)
00419 (void) printf(" %s\n",*p);
00420 (void) printf("\nImage Operators:\n");
00421 for (p=operators; *p != (char *) NULL; p++)
00422 (void) printf(" %s\n",*p);
00423 (void) printf("\nImage Sequence Operators:\n");
00424 for (p=sequence_operators; *p != (char *) NULL; p++)
00425 (void) printf(" %s\n",*p);
00426 (void) printf("\nImage Stack Operators:\n");
00427 for (p=stack_operators; *p != (char *) NULL; p++)
00428 (void) printf(" %s\n",*p);
00429 (void) printf("\nMiscellaneous Options:\n");
00430 for (p=miscellaneous; *p != (char *) NULL; p++)
00431 (void) printf(" %s\n",*p);
00432 (void) printf(
00433 "\nBy default, the image format of `file' is determined by its magic\n");
00434 (void) printf(
00435 "number. To specify a particular image format, precede the filename\n");
00436 (void) printf(
00437 "with an image format name and a colon (i.e. ps:image) or specify the\n");
00438 (void) printf(
00439 "image type as the filename suffix (i.e. image.ps). Specify 'file' as\n");
00440 (void) printf("'-' for standard input or output.\n");
00441 return(MagickFalse);
00442 }
00443
00444 WandExport MagickBooleanType ConvertImageCommand(ImageInfo *image_info,
00445 int argc,char **argv,char **metadata,ExceptionInfo *exception)
00446 {
00447 #define NotInitialized (unsigned int) (~0)
00448 #define DestroyConvert() \
00449 { \
00450 DestroyImageStack(); \
00451 for (i=0; i < (long) argc; i++) \
00452 argv[i]=DestroyString(argv[i]); \
00453 argv=(char **) RelinquishMagickMemory(argv); \
00454 }
00455 #define ThrowConvertException(asperity,tag,option) \
00456 { \
00457 (void) ThrowMagickException(exception,GetMagickModule(),asperity,tag,"`%s'", \
00458 option); \
00459 DestroyConvert(); \
00460 return(MagickFalse); \
00461 }
00462 #define ThrowConvertInvalidArgumentException(option,argument) \
00463 { \
00464 (void) ThrowMagickException(exception,GetMagickModule(),OptionError, \
00465 "InvalidArgument","`%s': %s",option,argument); \
00466 DestroyConvert(); \
00467 return(MagickFalse); \
00468 }
00469
00470 char
00471 *filename,
00472 *option;
00473
00474 const char
00475 *format;
00476
00477 Image
00478 *image;
00479
00480 ImageStack
00481 image_stack[MaxImageStackDepth+1];
00482
00483 long
00484 j,
00485 k;
00486
00487 MagickBooleanType
00488 fire,
00489 pend;
00490
00491 MagickStatusType
00492 status;
00493
00494 register long
00495 i;
00496
00497
00498
00499
00500 assert(image_info != (ImageInfo *) NULL);
00501 assert(image_info->signature == MagickSignature);
00502 if (image_info->debug != MagickFalse)
00503 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
00504 assert(exception != (ExceptionInfo *) NULL);
00505 if (argc == 2)
00506 {
00507 option=argv[1];
00508 if ((LocaleCompare("version",option+1) == 0) ||
00509 (LocaleCompare("-version",option+1) == 0))
00510 {
00511 (void) fprintf(stdout,"Version: %s\n",
00512 GetMagickVersion((unsigned long *) NULL));
00513 (void) fprintf(stdout,"Copyright: %s\n",GetMagickCopyright());
00514 (void) fprintf(stdout,"Features: %s\n\n",GetMagickFeatures());
00515 return(MagickFalse);
00516 }
00517 }
00518 if (argc < 3)
00519 {
00520 (void) ConvertUsage();
00521 return(MagickTrue);
00522 }
00523 filename=(char *) NULL;
00524 format="%w,%h,%m";
00525 j=1;
00526 k=0;
00527 NewImageStack();
00528 option=(char *) NULL;
00529 pend=MagickFalse;
00530 status=MagickTrue;
00531
00532
00533
00534 ReadCommandlLine(argc,&argv);
00535 status=ExpandFilenames(&argc,&argv);
00536 if (status == MagickFalse)
00537 ThrowConvertException(ResourceLimitError,"MemoryAllocationFailed",
00538 GetExceptionMessage(errno));
00539 if ((argc > 2) && (LocaleCompare("-concatenate",argv[1]) == 0))
00540 return(ConcatenateImages(argc,argv,exception));
00541 for (i=1; i < (long) (argc-1); i++)
00542 {
00543 option=argv[i];
00544 if (LocaleCompare(option,"(") == 0)
00545 {
00546 FireImageStack(MagickTrue,MagickTrue,pend);
00547 if (k == MaxImageStackDepth)
00548 ThrowConvertException(OptionError,"ParenthesisNestedTooDeeply",
00549 option);
00550 PushImageStack();
00551 continue;
00552 }
00553 if (LocaleCompare(option,")") == 0)
00554 {
00555 FireImageStack(MagickTrue,MagickTrue,MagickTrue);
00556 if (k == 0)
00557 ThrowConvertException(OptionError,"UnableToParseExpression",option);
00558 PopImageStack();
00559 continue;
00560 }
00561 if (IsMagickOption(option) == MagickFalse)
00562 {
00563 Image
00564 *images;
00565
00566
00567
00568
00569 FireImageStack(MagickTrue,MagickTrue,pend);
00570 filename=argv[i];
00571 if ((LocaleCompare(filename,"--") == 0) && (i < (argc-1)))
00572 filename=argv[++i];
00573 (void) CopyMagickString(image_info->filename,filename,MaxTextExtent);
00574 if (image_info->ping != MagickFalse)
00575 images=PingImages(image_info,exception);
00576 else
00577 images=ReadImages(image_info,exception);
00578 status&=(images != (Image *) NULL) &&
00579 (exception->severity < ErrorException);
00580 if (images == (Image *) NULL)
00581 continue;
00582 AppendImageStack(images);
00583 continue;
00584 }
00585 pend=image != (Image *) NULL ? MagickTrue : MagickFalse;
00586 switch (*(option+1))
00587 {
00588 case 'a':
00589 {
00590 if (LocaleCompare("adaptive-blur",option+1) == 0)
00591 {
00592 i++;
00593 if (i == (long) (argc-1))
00594 ThrowConvertException(OptionError,"MissingArgument",option);
00595 if (IsGeometry(argv[i]) == MagickFalse)
00596 ThrowConvertInvalidArgumentException(option,argv[i]);
00597 break;
00598 }
00599 if (LocaleCompare("adaptive-resize",option+1) == 0)
00600 {
00601 i++;
00602 if (i == (long) (argc-1))
00603 ThrowConvertException(OptionError,"MissingArgument",option);
00604 if (IsGeometry(argv[i]) == MagickFalse)
00605 ThrowConvertInvalidArgumentException(option,argv[i]);
00606 break;
00607 }
00608 if (LocaleCompare("adaptive-sharpen",option+1) == 0)
00609 {
00610 i++;
00611 if (i == (long) (argc-1))
00612 ThrowConvertException(OptionError,"MissingArgument",option);
00613 if (IsGeometry(argv[i]) == MagickFalse)
00614 ThrowConvertInvalidArgumentException(option,argv[i]);
00615 break;
00616 }
00617 if (LocaleCompare("adjoin",option+1) == 0)
00618 break;
00619 if (LocaleCompare("affine",option+1) == 0)
00620 {
00621 if (*option == '+')
00622 break;
00623 i++;
00624 if (i == (long) (argc-1))
00625 ThrowConvertException(OptionError,"MissingArgument",option);
00626 if (IsGeometry(argv[i]) == MagickFalse)
00627 ThrowConvertInvalidArgumentException(option,argv[i]);
00628 break;
00629 }
00630 if (LocaleCompare("alpha",option+1) == 0)
00631 {
00632 long
00633 type;
00634
00635 if (*option == '+')
00636 break;
00637 i++;
00638 if (i == (long) argc)
00639 ThrowConvertException(OptionError,"MissingArgument",option);
00640 type=ParseMagickOption(MagickAlphaOptions,MagickFalse,argv[i]);
00641 if (type < 0)
00642 ThrowConvertException(OptionError,"UnrecognizedAlphaChannelType",
00643 argv[i]);
00644 break;
00645 }
00646 if (LocaleCompare("annotate",option+1) == 0)
00647 {
00648 if (*option == '+')
00649 break;
00650 i++;
00651 if (i == (long) (argc-1))
00652 ThrowConvertException(OptionError,"MissingArgument",option);
00653 if (IsGeometry(argv[i]) == MagickFalse)
00654 ThrowConvertInvalidArgumentException(option,argv[i]);
00655 i++;
00656 if (i == (long) (argc-1))
00657 ThrowConvertException(OptionError,"MissingArgument",option);
00658 break;
00659 }
00660 if (LocaleCompare("antialias",option+1) == 0)
00661 break;
00662 if (LocaleCompare("append",option+1) == 0)
00663 break;
00664 if (LocaleCompare("attenuate",option+1) == 0)
00665 {
00666 if (*option == '+')
00667 break;
00668 i++;
00669 if (i == (long) (argc-1))
00670 ThrowConvertException(OptionError,"MissingArgument",option);
00671 if (IsGeometry(argv[i]) == MagickFalse)
00672 ThrowConvertInvalidArgumentException(option,argv[i]);
00673 break;
00674 }
00675 if (LocaleCompare("authenticate",option+1) == 0)
00676 {
00677 if (*option == '+')
00678 break;
00679 i++;
00680 if (i == (long) (argc-1))
00681 ThrowConvertException(OptionError,"MissingArgument",option);
00682 break;
00683 }
00684 if (LocaleCompare("auto-gamma",option+1) == 0)
00685 break;
00686 if (LocaleCompare("auto-level",option+1) == 0)
00687 break;
00688 if (LocaleCompare("auto-orient",option+1) == 0)
00689 break;
00690 if (LocaleCompare("average",option+1) == 0)
00691 break;
00692 ThrowConvertException(OptionError,"UnrecognizedOption",option)
00693 }
00694 case 'b':
00695 {
00696 if (LocaleCompare("background",option+1) == 0)
00697 {
00698 if (*option == '+')
00699 break;
00700 i++;
00701 if (i == (long) (argc-1))
00702 ThrowConvertException(OptionError,"MissingArgument",option);
00703 break;
00704 }
00705 if (LocaleCompare("bench",option+1) == 0)
00706 {
00707 if (*option == '+')
00708 break;
00709 i++;
00710 if (i == (long) (argc-1))
00711 ThrowConvertException(OptionError,"MissingArgument",option);
00712 if (IsGeometry(argv[i]) == MagickFalse)
00713 ThrowConvertInvalidArgumentException(option,argv[i]);
00714 break;
00715 }
00716 if (LocaleCompare("bias",option+1) == 0)
00717 {
00718 if (*option == '+')
00719 break;
00720 i++;
00721 if (i == (long) (argc-1))
00722 ThrowConvertException(OptionError,"MissingArgument",option);
00723 if (IsGeometry(argv[i]) == MagickFalse)
00724 ThrowConvertInvalidArgumentException(option,argv[i]);
00725 break;
00726 }
00727 if (LocaleCompare("black-point-compensation",option+1) == 0)
00728 break;
00729 if (LocaleCompare("black-threshold",option+1) == 0)
00730 {
00731 if (*option == '+')
00732 break;
00733 i++;
00734 if (i == (long) (argc-1))
00735 ThrowConvertException(OptionError,"MissingArgument",option);
00736 if (IsGeometry(argv[i]) == MagickFalse)
00737 ThrowConvertInvalidArgumentException(option,argv[i]);
00738 break;
00739 }
00740 if (LocaleCompare("blue-primary",option+1) == 0)
00741 {
00742 if (*option == '+')
00743 break;
00744 i++;
00745 if (i == (long) (argc-1))
00746 ThrowConvertException(OptionError,"MissingArgument",option);
00747 if (IsGeometry(argv[i]) == MagickFalse)
00748 ThrowConvertInvalidArgumentException(option,argv[i]);
00749 break;
00750 }
00751 if (LocaleCompare("blue-shift",option+1) == 0)
00752 {
00753 if (*option == '+')
00754 break;
00755 i++;
00756 if (i == (long) (argc-1))
00757 ThrowConvertException(OptionError,"MissingArgument",option);
00758 if (IsGeometry(argv[i]) == MagickFalse)
00759 ThrowConvertInvalidArgumentException(option,argv[i]);
00760 break;
00761 }
00762 if (LocaleCompare("blur",option+1) == 0)
00763 {
00764 if (*option == '+')
00765 break;
00766 i++;
00767 if (i == (long) (argc-1))
00768 ThrowConvertException(OptionError,"MissingArgument",option);
00769 if (IsGeometry(argv[i]) == MagickFalse)
00770 ThrowConvertInvalidArgumentException(option,argv[i]);
00771 break;
00772 }
00773 if (LocaleCompare("border",option+1) == 0)
00774 {
00775 if (*option == '+')
00776 break;
00777 i++;
00778 if (i == (long) (argc-1))
00779 ThrowConvertException(OptionError,"MissingArgument",option);
00780 if (IsGeometry(argv[i]) == MagickFalse)
00781 ThrowConvertInvalidArgumentException(option,argv[i]);
00782 break;
00783 }
00784 if (LocaleCompare("bordercolor",option+1) == 0)
00785 {
00786 if (*option == '+')
00787 break;
00788 i++;
00789 if (i == (long) (argc-1))
00790 ThrowConvertException(OptionError,"MissingArgument",option);
00791 break;
00792 }
00793 if (LocaleCompare("box",option+1) == 0)
00794 {
00795 if (*option == '+')
00796 break;
00797 i++;
00798 if (i == (long) (argc-1))
00799 ThrowConvertException(OptionError,"MissingArgument",option);
00800 break;
00801 }
00802 ThrowConvertException(OptionError,"UnrecognizedOption",option)
00803 }
00804 case 'c':
00805 {
00806 if (LocaleCompare("cache",option+1) == 0)
00807 {
00808 if (*option == '+')
00809 break;
00810 i++;
00811 if (i == (long) (argc-1))
00812 ThrowConvertException(OptionError,"MissingArgument",option);
00813 if (IsGeometry(argv[i]) == MagickFalse)
00814 ThrowConvertInvalidArgumentException(option,argv[i]);
00815 break;
00816 }
00817 if (LocaleCompare("caption",option+1) == 0)
00818 {
00819 if (*option == '+')
00820 break;
00821 i++;
00822 if (i == (long) argc)
00823 ThrowConvertException(OptionError,"MissingArgument",option);
00824 break;
00825 }
00826 if (LocaleCompare("cdl",option+1) == 0)
00827 {
00828 if (*option == '+')
00829 break;
00830 i++;
00831 if (i == (long) (argc-1))
00832 ThrowConvertException(OptionError,"MissingArgument",option);
00833 break;
00834 }
00835 if (LocaleCompare("channel",option+1) == 0)
00836 {
00837 long
00838 channel;
00839
00840 if (*option == '+')
00841 break;
00842 i++;
00843 if (i == (long) (argc-1))
00844 ThrowConvertException(OptionError,"MissingArgument",option);
00845 channel=ParseChannelOption(argv[i]);
00846 if (channel < 0)
00847 ThrowConvertException(OptionError,"UnrecognizedChannelType",
00848 argv[i]);
00849 break;
00850 }
00851 if (LocaleCompare("charcoal",option+1) == 0)
00852 {
00853 if (*option == '+')
00854 break;
00855 i++;
00856 if (i == (long) (argc-1))
00857 ThrowConvertException(OptionError,"MissingArgument",option);
00858 if (IsGeometry(argv[i]) == MagickFalse)
00859 ThrowConvertInvalidArgumentException(option,argv[i]);
00860 break;
00861 }
00862 if (LocaleCompare("chop",option+1) == 0)
00863 {
00864 if (*option == '+')
00865 break;
00866 i++;
00867 if (i == (long) (argc-1))
00868 ThrowConvertException(OptionError,"MissingArgument",option);
00869 if (IsGeometry(argv[i]) == MagickFalse)
00870 ThrowConvertInvalidArgumentException(option,argv[i]);
00871 break;
00872 }
00873 if (LocaleCompare("clamp",option+1) == 0)
00874 break;
00875 if (LocaleCompare("clip",option+1) == 0)
00876 break;
00877 if (LocaleCompare("clip-mask",option+1) == 0)
00878 {
00879 if (*option == '+')
00880 break;
00881 i++;
00882 if (i == (long) (argc-1))
00883 ThrowConvertException(OptionError,"MissingArgument",option);
00884 break;
00885 }
00886 if (LocaleCompare("clip-path",option+1) == 0)
00887 {
00888 i++;
00889 if (i == (long) (argc-1))
00890 ThrowConvertException(OptionError,"MissingArgument",option);
00891 break;
00892 }
00893 if (LocaleCompare("clone",option+1) == 0)
00894 {
00895 Image
00896 *clone_images;
00897
00898 clone_images=image;
00899 if (k != 0)
00900 clone_images=image_stack[k-1].image;
00901 if (clone_images == (Image *) NULL)
00902 ThrowConvertException(ImageError,"ImageSequenceRequired",option);
00903 FireImageStack(MagickTrue,MagickTrue,MagickTrue);
00904 if (*option == '+')
00905 clone_images=CloneImages(clone_images,"-1",exception);
00906 else
00907 {
00908 i++;
00909 if (i == (long) (argc-1))
00910 ThrowConvertException(OptionError,"MissingArgument",option);
00911 if (IsSceneGeometry(argv[i],MagickFalse) == MagickFalse)
00912 ThrowConvertInvalidArgumentException(option,argv[i]);
00913 clone_images=CloneImages(clone_images,argv[i],exception);
00914 }
00915 if (clone_images == (Image *) NULL)
00916 ThrowConvertException(OptionError,"NoSuchImage",option);
00917 AppendImageStack(clone_images);
00918 break;
00919 }
00920 if (LocaleCompare("clut",option+1) == 0)
00921 break;
00922 if (LocaleCompare("coalesce",option+1) == 0)
00923 break;
00924 if (LocaleCompare("colorize",option+1) == 0)
00925 {
00926 if (*option == '+')
00927 break;
00928 i++;
00929 if (i == (long) (argc-1))
00930 ThrowConvertException(OptionError,"MissingArgument",option);
00931 if (IsGeometry(argv[i]) == MagickFalse)
00932 ThrowConvertInvalidArgumentException(option,argv[i]);
00933 break;
00934 }
00935 if (LocaleCompare("colors",option+1) == 0)
00936 {
00937 if (*option == '+')
00938 break;
00939 i++;
00940 if ((i == (long) (argc-1)) ||
00941 (IsGeometry(argv[i]) == MagickFalse))
00942 ThrowConvertException(OptionError,"MissingArgument",option);
00943 break;
00944 }
00945 if (LocaleCompare("colorspace",option+1) == 0)
00946 {
00947 long
00948 colorspace;
00949
00950 if (*option == '+')
00951 break;
00952 i++;
00953 if (i == (long) (argc-1))
00954 ThrowConvertException(OptionError,"MissingArgument",option);
00955 colorspace=ParseMagickOption(MagickColorspaceOptions,
00956 MagickFalse,argv[i]);
00957 if (colorspace < 0)
00958 ThrowConvertException(OptionError,"UnrecognizedColorspace",
00959 argv[i]);
00960 break;
00961 }
00962 if (LocaleCompare("combine",option+1) == 0)
00963 break;
00964 if (LocaleCompare("comment",option+1) == 0)
00965 {
00966 if (*option == '+')
00967 break;
00968 i++;
00969 if (i == (long) argc)
00970 ThrowConvertException(OptionError,"MissingArgument",option);
00971 break;
00972 }
00973 if (LocaleCompare("compose",option+1) == 0)
00974 {
00975 long
00976 compose;
00977
00978 if (*option == '+')
00979 break;
00980 i++;
00981 if (i == (long) argc)
00982 ThrowConvertException(OptionError,"MissingArgument",option);
00983 compose=ParseMagickOption(MagickComposeOptions,MagickFalse,
00984 argv[i]);
00985 if (compose < 0)
00986 ThrowConvertException(OptionError,"UnrecognizedComposeOperator",
00987 argv[i]);
00988 break;
00989 }
00990 if (LocaleCompare("composite",option+1) == 0)
00991 break;
00992 if (LocaleCompare("compress",option+1) == 0)
00993 {
00994 long
00995 compress;
00996
00997 if (*option == '+')
00998 break;
00999 i++;
01000 if (i == (long) (argc-1))
01001 ThrowConvertException(OptionError,"MissingArgument",option);
01002 compress=ParseMagickOption(MagickCompressOptions,MagickFalse,
01003 argv[i]);
01004 if (compress < 0)
01005 ThrowConvertException(OptionError,"UnrecognizedImageCompression",
01006 argv[i]);
01007 break;
01008 }
01009 if (LocaleCompare("concurrent",option+1) == 0)
01010 break;
01011 if (LocaleCompare("contrast",option+1) == 0)
01012 break;
01013 if (LocaleCompare("contrast-stretch",option+1) == 0)
01014 {
01015 i++;
01016 if (i == (long) (argc-1))
01017 ThrowConvertException(OptionError,"MissingArgument",option);
01018 if (IsGeometry(argv[i]) == MagickFalse)
01019 ThrowConvertInvalidArgumentException(option,argv[i]);
01020 break;
01021 }
01022 if (LocaleCompare("convolve",option+1) == 0)
01023 {
01024 if (*option == '+')
01025 break;
01026 i++;
01027 if (i == (long) (argc-1))
01028 ThrowConvertException(OptionError,"MissingArgument",option);
01029 if (IsGeometry(argv[i]) == MagickFalse)
01030 ThrowConvertInvalidArgumentException(option,argv[i]);
01031 break;
01032 }
01033 if (LocaleCompare("crop",option+1) == 0)
01034 {
01035 if (*option == '+')
01036 break;
01037 i++;
01038 if (i == (long) (argc-1))
01039 ThrowConvertException(OptionError,"MissingArgument",option);
01040 if (IsGeometry(argv[i]) == MagickFalse)
01041 ThrowConvertInvalidArgumentException(option,argv[i]);
01042 break;
01043 }
01044 if (LocaleCompare("cycle",option+1) == 0)
01045 {
01046 if (*option == '+')
01047 break;
01048 i++;
01049 if (i == (long) (argc-1))
01050 ThrowConvertException(OptionError,"MissingArgument",option);
01051 if (IsGeometry(argv[i]) == MagickFalse)
01052 ThrowConvertInvalidArgumentException(option,argv[i]);
01053 break;
01054 }
01055 ThrowConvertException(OptionError,"UnrecognizedOption",option)
01056 }
01057 case 'd':
01058 {
01059 if (LocaleCompare("decipher",option+1) == 0)
01060 {
01061 if (*option == '+')
01062 break;
01063 i++;
01064 if (i == (long) (argc-1))
01065 ThrowConvertException(OptionError,"MissingArgument",option);
01066 break;
01067 }
01068 if (LocaleCompare("deconstruct",option+1) == 0)
01069 break;
01070 if (LocaleCompare("debug",option+1) == 0)
01071 {
01072 long
01073 event;
01074
01075 if (*option == '+')
01076 break;
01077 i++;
01078 if (i == (long) argc)
01079 ThrowConvertException(OptionError,"MissingArgument",option);
01080 event=ParseMagickOption(MagickLogEventOptions,MagickFalse,argv[i]);
01081 if (event < 0)
01082 ThrowConvertException(OptionError,"UnrecognizedEventType",
01083 argv[i]);
01084 (void) SetLogEventMask(argv[i]);
01085 break;
01086 }
01087 if (LocaleCompare("define",option+1) == 0)
01088 {
01089 i++;
01090 if (i == (long) argc)
01091 ThrowConvertException(OptionError,"MissingArgument",option);
01092 if (*option == '+')
01093 {
01094 const char
01095 *define;
01096
01097 define=GetImageOption(image_info,argv[i]);
01098 if (define == (const char *) NULL)
01099 ThrowConvertException(OptionError,"NoSuchOption",argv[i]);
01100 break;
01101 }
01102 break;
01103 }
01104 if (LocaleCompare("delay",option+1) == 0)
01105 {
01106 if (*option == '+')
01107 break;
01108 i++;
01109 if (i == (long) argc)
01110 ThrowConvertException(OptionError,"MissingArgument",option);
01111 if (IsGeometry(argv[i]) == MagickFalse)
01112 ThrowConvertInvalidArgumentException(option,argv[i]);
01113 break;
01114 }
01115 if (LocaleCompare("density",option+1) == 0)
01116 {
01117 if (*option == '+')
01118 break;
01119 i++;
01120 if (i == (long) (argc-1))
01121 ThrowConvertException(OptionError,"MissingArgument",option);
01122 if (IsGeometry(argv[i]) == MagickFalse)
01123 ThrowConvertInvalidArgumentException(option,argv[i]);
01124 break;
01125 }
01126 if (LocaleCompare("depth",option+1) == 0)
01127 {
01128 if (*option == '+')
01129 break;
01130 i++;
01131 if (i == (long) (argc-1))
01132 ThrowConvertException(OptionError,"MissingArgument",option);
01133 if (IsGeometry(argv[i]) == MagickFalse)
01134 ThrowConvertInvalidArgumentException(option,argv[i]);
01135 break;
01136 }
01137 if (LocaleCompare("delete",option+1) == 0)
01138 {
01139 if (*option == '+')
01140 break;
01141 i++;
01142 if (i == (long) (argc-1))
01143 ThrowConvertException(OptionError,"MissingArgument",option);
01144 if (IsSceneGeometry(argv[i],MagickFalse) == MagickFalse)
01145 ThrowConvertInvalidArgumentException(option,argv[i]);
01146 break;
01147 }
01148 if (LocaleCompare("deskew",option+1) == 0)
01149 {
01150 if (*option == '+')
01151 break;
01152 i++;
01153 if (i == (long) (argc-1))
01154 ThrowConvertException(OptionError,"MissingArgument",option);
01155 if (IsGeometry(argv[i]) == MagickFalse)
01156 ThrowConvertInvalidArgumentException(option,argv[i]);
01157 break;
01158 }
01159 if (LocaleCompare("despeckle",option+1) == 0)
01160 break;
01161 if (LocaleCompare("display",option+1) == 0)
01162 {
01163 if (*option == '+')
01164 break;
01165 i++;
01166 if (i == (long) (argc-1))
01167 ThrowConvertException(OptionError,"MissingArgument",option);
01168 break;
01169 }
01170 if (LocaleCompare("dispose",option+1) == 0)
01171 {
01172 long
01173 dispose;
01174
01175 if (*option == '+')
01176 break;
01177 i++;
01178 if (i == (long) argc)
01179 ThrowConvertException(OptionError,"MissingArgument",option);
01180 dispose=ParseMagickOption(MagickDisposeOptions,MagickFalse,argv[i]);
01181 if (dispose < 0)
01182 ThrowConvertException(OptionError,"UnrecognizedDisposeMethod",
01183 argv[i]);
01184 break;
01185 }
01186 if (LocaleCompare("distort",option+1) == 0)
01187 {
01188 long
01189 op;
01190
01191 i++;
01192 if (i == (long) argc)
01193 ThrowConvertException(OptionError,"MissingArgument",option);
01194 op=ParseMagickOption(MagickDistortOptions,MagickFalse,argv[i]);
01195 if (op < 0)
01196 ThrowConvertException(OptionError,"UnrecognizedDistortMethod",
01197 argv[i]);
01198 i++;
01199 if (i == (long) (argc-1))
01200 ThrowConvertException(OptionError,"MissingArgument",option);
01201 break;
01202 }
01203 if (LocaleCompare("dither",option+1) == 0)
01204 {
01205 long
01206 method;
01207
01208 if (*option == '+')
01209 break;
01210 i++;
01211 if (i == (long) argc)
01212 ThrowConvertException(OptionError,"MissingArgument",option);
01213 method=ParseMagickOption(MagickDitherOptions,MagickFalse,argv[i]);
01214 if (method < 0)
01215 ThrowConvertException(OptionError,"UnrecognizedDitherMethod",
01216 argv[i]);
01217 break;
01218 }
01219 if (LocaleCompare("draw",option+1) == 0)
01220 {
01221 if (*option == '+')
01222 break;
01223 i++;
01224 if (i == (long) (argc-1))
01225 ThrowConvertException(OptionError,"MissingArgument",option);
01226 break;
01227 }
01228 if (LocaleCompare("duration",option+1) == 0)
01229 {
01230 if (*option == '+')
01231 break;
01232 i++;
01233 if (i == (long) (argc-1))
01234 ThrowConvertException(OptionError,"MissingArgument",option);
01235 if (IsGeometry(argv[i]) == MagickFalse)
01236 ThrowConvertInvalidArgumentException(option,argv[i]);
01237 break;
01238 }
01239 ThrowConvertException(OptionError,"UnrecognizedOption",option)
01240 }
01241 case 'e':
01242 {
01243 if (LocaleCompare("edge",option+1) == 0)
01244 {
01245 if (*option == '+')
01246 break;
01247 i++;
01248 if (i == (long) (argc-1))
01249 ThrowConvertException(OptionError,"MissingArgument",option);
01250 if (IsGeometry(argv[i]) == MagickFalse)
01251 ThrowConvertInvalidArgumentException(option,argv[i]);
01252 break;
01253 }
01254 if (LocaleCompare("emboss",option+1) == 0)
01255 {
01256 if (*option == '+')
01257 break;
01258 i++;
01259 if (i == (long) (argc-1))
01260 ThrowConvertException(OptionError,"MissingArgument",option);
01261 if (IsGeometry(argv[i]) == MagickFalse)
01262 ThrowConvertInvalidArgumentException(option,argv[i]);
01263 break;
01264 }
01265 if (LocaleCompare("encipher",option+1) == 0)
01266 {
01267 if (*option == '+')
01268 break;
01269 i++;
01270 if (i == (long) (argc-1))
01271 ThrowConvertException(OptionError,"MissingArgument",option);
01272 break;
01273 }
01274 if (LocaleCompare("encoding",option+1) == 0)
01275 {
01276 if (*option == '+')
01277 break;
01278 i++;
01279 if (i == (long) (argc-1))
01280 ThrowConvertException(OptionError,"MissingArgument",option);
01281 break;
01282 }
01283 if (LocaleCompare("endian",option+1) == 0)
01284 {
01285 long
01286 endian;
01287
01288 if (*option == '+')
01289 break;
01290 i++;
01291 if (i == (long) (argc-1))
01292 ThrowConvertException(OptionError,"MissingArgument",option);
01293 endian=ParseMagickOption(MagickEndianOptions,MagickFalse,
01294 argv[i]);
01295 if (endian < 0)
01296 ThrowConvertException(OptionError,"UnrecognizedEndianType",
01297 argv[i]);
01298 break;
01299 }
01300 if (LocaleCompare("enhance",option+1) == 0)
01301 break;
01302 if (LocaleCompare("equalize",option+1) == 0)
01303 break;
01304 if (LocaleCompare("evaluate",option+1) == 0)
01305 {
01306 long
01307 op;
01308
01309 if (*option == '+')
01310 break;
01311 i++;
01312 if (i == (long) argc)
01313 ThrowConvertException(OptionError,"MissingArgument",option);
01314 op=ParseMagickOption(MagickEvaluateOptions,MagickFalse,argv[i]);
01315 if (op < 0)
01316 ThrowConvertException(OptionError,"UnrecognizedEvaluateOperator",
01317 argv[i]);
01318 i++;
01319 if (i == (long) (argc-1))
01320 ThrowConvertException(OptionError,"MissingArgument",option);
01321 if (IsGeometry(argv[i]) == MagickFalse)
01322 ThrowConvertInvalidArgumentException(option,argv[i]);
01323 break;
01324 }
01325 if (LocaleCompare("extent",option+1) == 0)
01326 {
01327 if (*option == '+')
01328 break;
01329 i++;
01330 if (i == (long) (argc-1))
01331 ThrowConvertException(OptionError,"MissingArgument",option);
01332 if (IsGeometry(argv[i]) == MagickFalse)
01333 ThrowConvertInvalidArgumentException(option,argv[i]);
01334 break;
01335 }
01336 if (LocaleCompare("extract",option+1) == 0)
01337 {
01338 if (*option == '+')
01339 break;
01340 i++;
01341 if (i == (long) (argc-1))
01342 ThrowConvertException(OptionError,"MissingArgument",option);
01343 if (IsGeometry(argv[i]) == MagickFalse)
01344 ThrowConvertInvalidArgumentException(option,argv[i]);
01345 break;
01346 }
01347 ThrowConvertException(OptionError,"UnrecognizedOption",option)
01348 }
01349 case 'f':
01350 {
01351 if (LocaleCompare("family",option+1) == 0)
01352 {
01353 if (*option == '+')
01354 break;
01355 i++;
01356 if (i == (long) (argc-1))
01357 ThrowConvertException(OptionError,"MissingArgument",option);
01358 break;
01359 }
01360 if (LocaleCompare("fft",option+1) == 0)
01361 break;
01362 if (LocaleCompare("fill",option+1) == 0)
01363 {
01364 if (*option == '+')
01365 break;
01366 i++;
01367 if (i == (long) (argc-1))
01368 ThrowConvertException(OptionError,"MissingArgument",option);
01369 break;
01370 }
01371 if (LocaleCompare("filter",option+1) == 0)
01372 {
01373 long
01374 filter;
01375
01376 if (*option == '+')
01377 break;
01378 i++;
01379 if (i == (long) (argc-1))
01380 ThrowConvertException(OptionError,"MissingArgument",option);
01381 filter=ParseMagickOption(MagickFilterOptions,MagickFalse,argv[i]);
01382 if (filter < 0)
01383 ThrowConvertException(OptionError,"UnrecognizedImageFilter",
01384 argv[i]);
01385 break;
01386 }
01387 if (LocaleCompare("flatten",option+1) == 0)
01388 break;
01389 if (LocaleCompare("flip",option+1) == 0)
01390 break;
01391 if (LocaleCompare("flop",option+1) == 0)
01392 break;
01393 if (LocaleCompare("floodfill",option+1) == 0)
01394 {
01395 if (*option == '+')
01396 break;
01397 i++;
01398 if (i == (long) (argc-1))
01399 ThrowConvertException(OptionError,"MissingArgument",option);
01400 if (IsGeometry(argv[i]) == MagickFalse)
01401 ThrowConvertInvalidArgumentException(option,argv[i]);
01402 i++;
01403 if (i == (long) (argc-1))
01404 ThrowConvertException(OptionError,"MissingArgument",option);
01405 break;
01406 }
01407 if (LocaleCompare("font",option+1) == 0)
01408 {
01409 if (*option == '+')
01410 break;
01411 i++;
01412 if (i == (long) (argc-1))
01413 ThrowConvertException(OptionError,"MissingArgument",option);
01414 break;
01415 }
01416 if (LocaleCompare("format",option+1) == 0)
01417 {
01418 if (*option == '+')
01419 break;
01420 i++;
01421 if (i == (long) (argc-1))
01422 ThrowConvertException(OptionError,"MissingArgument",option);
01423 format=argv[i];
01424 break;
01425 }
01426 if (LocaleCompare("frame",option+1) == 0)
01427 {
01428 if (*option == '+')
01429 break;
01430 i++;
01431 if (i == (long) (argc-1))
01432 ThrowConvertException(OptionError,"MissingArgument",option);
01433 if (IsGeometry(argv[i]) == MagickFalse)
01434 ThrowConvertInvalidArgumentException(option,argv[i]);
01435 break;
01436 }
01437 if (LocaleCompare("function",option+1) == 0)
01438 {
01439 long
01440 op;
01441
01442 if (*option == '+')
01443 break;
01444 i++;
01445 if (i == (long) argc)
01446 ThrowConvertException(OptionError,"MissingArgument",option);
01447 op=ParseMagickOption(MagickFunctionOptions,MagickFalse,argv[i]);
01448 if (op < 0)
01449 ThrowConvertException(OptionError,"UnrecognizedFunction",argv[i]);
01450 i++;
01451 if (i == (long) (argc-1))
01452 ThrowConvertException(OptionError,"MissingArgument",option);
01453 break;
01454 }
01455 if (LocaleCompare("fuzz",option+1) == 0)
01456 {
01457 if (*option == '+')
01458 break;
01459 i++;
01460 if (i == (long) (argc-1))
01461 ThrowConvertException(OptionError,"MissingArgument",option);
01462 if (IsGeometry(argv[i]) == MagickFalse)
01463 ThrowConvertInvalidArgumentException(option,argv[i]);
01464 break;
01465 }
01466 if (LocaleCompare("fx",option+1) == 0)
01467 {
01468 if (*option == '+')
01469 break;
01470 i++;
01471 if (i == (long) (argc-1))
01472 ThrowConvertException(OptionError,"MissingArgument",option);
01473 break;
01474 }
01475 ThrowConvertException(OptionError,"UnrecognizedOption",option)
01476 }
01477 case 'g':
01478 {
01479 if (LocaleCompare("gamma",option+1) == 0)
01480 {
01481 i++;
01482 if (i == (long) (argc-1))
01483 ThrowConvertException(OptionError,"MissingArgument",option);
01484 if (IsGeometry(argv[i]) == MagickFalse)
01485 ThrowConvertInvalidArgumentException(option,argv[i]);
01486 break;
01487 }
01488 if ((LocaleCompare("gaussian-blur",option+1) == 0) ||
01489 (LocaleCompare("gaussian",option+1) == 0))
01490 {
01491 i++;
01492 if (i == (long) (argc-1))
01493 ThrowConvertException(OptionError,"MissingArgument",option);
01494 if (IsGeometry(argv[i]) == MagickFalse)
01495 ThrowConvertInvalidArgumentException(option,argv[i]);
01496 break;
01497 }
01498 if (LocaleCompare("geometry",option+1) == 0)
01499 {
01500 if (*option == '+')
01501 break;
01502 i++;
01503 if (i == (long) (argc-1))
01504 ThrowConvertException(OptionError,"MissingArgument",option);
01505 if (IsGeometry(argv[i]) == MagickFalse)
01506 ThrowConvertInvalidArgumentException(option,argv[i]);
01507 break;
01508 }
01509 if (LocaleCompare("gravity",option+1) == 0)
01510 {
01511 long
01512 gravity;
01513
01514 if (*option == '+')
01515 break;
01516 i++;
01517 if (i == (long) (argc-1))
01518 ThrowConvertException(OptionError,"MissingArgument",option);
01519 gravity=ParseMagickOption(MagickGravityOptions,MagickFalse,
01520 argv[i]);
01521 if (gravity < 0)
01522 ThrowConvertException(OptionError,"UnrecognizedGravityType",
01523 argv[i]);
01524 break;
01525 }
01526 if (LocaleCompare("green-primary",option+1) == 0)
01527 {
01528 if (*option == '+')
01529 break;
01530 i++;
01531 if (i == (long) (argc-1))
01532 ThrowConvertException(OptionError,"MissingArgument",option);
01533 if (IsGeometry(argv[i]) == MagickFalse)
01534 ThrowConvertInvalidArgumentException(option,argv[i]);
01535 break;
01536 }
01537 ThrowConvertException(OptionError,"UnrecognizedOption",option)
01538 }
01539 case 'h':
01540 {
01541 if (LocaleCompare("hald-clut",option+1) == 0)
01542 break;
01543 if ((LocaleCompare("help",option+1) == 0) ||
01544 (LocaleCompare("-help",option+1) == 0))
01545 return(ConvertUsage());
01546 ThrowConvertException(OptionError,"UnrecognizedOption",option)
01547 }
01548 case 'i':
01549 {
01550 if (LocaleCompare("identify",option+1) == 0)
01551 break;
01552 if (LocaleCompare("ift",option+1) == 0)
01553 break;
01554 if (LocaleCompare("implode",option+1) == 0)
01555 {
01556 if (*option == '+')
01557 break;
01558 i++;
01559 if (i == (long) (argc-1))
01560 ThrowConvertException(OptionError,"MissingArgument",option);
01561 if (IsGeometry(argv[i]) == MagickFalse)
01562 ThrowConvertInvalidArgumentException(option,argv[i]);
01563 break;
01564 }
01565 if (LocaleCompare("insert",option+1) == 0)
01566 {
01567 if (*option == '+')
01568 break;
01569 i++;
01570 if (i == (long) (argc-1))
01571 ThrowConvertException(OptionError,"MissingArgument",option);
01572 if (IsGeometry(argv[i]) == MagickFalse)
01573 ThrowConvertInvalidArgumentException(option,argv[i]);
01574 break;
01575 }
01576 if (LocaleCompare("intent",option+1) == 0)
01577 {
01578 long
01579 intent;
01580
01581 if (*option == '+')
01582 break;
01583 i++;
01584 if (i == (long) (argc-1))
01585 ThrowConvertException(OptionError,"MissingArgument",option);
01586 intent=ParseMagickOption(MagickIntentOptions,MagickFalse,
01587 argv[i]);
01588 if (intent < 0)
01589 ThrowConvertException(OptionError,"UnrecognizedIntentType",
01590 argv[i]);
01591 break;
01592 }
01593 if (LocaleCompare("interlace",option+1) == 0)
01594 {
01595 long
01596 interlace;
01597
01598 if (*option == '+')
01599 break;
01600 i++;
01601 if (i == (long) (argc-1))
01602 ThrowConvertException(OptionError,"MissingArgument",option);
01603 interlace=ParseMagickOption(MagickInterlaceOptions,MagickFalse,
01604 argv[i]);
01605 if (interlace < 0)
01606 ThrowConvertException(OptionError,"UnrecognizedInterlaceType",
01607 argv[i]);
01608 break;
01609 }
01610 if (LocaleCompare("interline-spacing",option+1) == 0)
01611 {
01612 if (*option == '+')
01613 break;
01614 i++;
01615 if (i == (long) (argc-1))
01616 ThrowConvertException(OptionError,"MissingArgument",option);
01617 if (IsGeometry(argv[i]) == MagickFalse)
01618 ThrowConvertInvalidArgumentException(option,argv[i]);
01619 break;
01620 }
01621 if (LocaleCompare("interpolate",option+1) == 0)
01622 {
01623 long
01624 interpolate;
01625
01626 if (*option == '+')
01627 break;
01628 i++;
01629 if (i == (long) argc)
01630 ThrowConvertException(OptionError,"MissingArgument",option);
01631 interpolate=ParseMagickOption(MagickInterpolateOptions,MagickFalse,
01632 argv[i]);
01633 if (interpolate < 0)
01634 ThrowConvertException(OptionError,"UnrecognizedInterpolateMethod",
01635 argv[i]);
01636 break;
01637 }
01638 if (LocaleCompare("interword-spacing",option+1) == 0)
01639 {
01640 if (*option == '+')
01641 break;
01642 i++;
01643 if (i == (long) (argc-1))
01644 ThrowConvertException(OptionError,"MissingArgument",option);
01645 if (IsGeometry(argv[i]) == MagickFalse)
01646 ThrowConvertInvalidArgumentException(option,argv[i]);
01647 break;
01648 }
01649 ThrowConvertException(OptionError,"UnrecognizedOption",option)
01650 }
01651 case 'k':
01652 {
01653 if (LocaleCompare("kerning",option+1) == 0)
01654 {
01655 if (*option == '+')
01656 break;
01657 i++;
01658 if (i == (long) (argc-1))
01659 ThrowConvertException(OptionError,"MissingArgument",option);
01660 if (IsGeometry(argv[i]) == MagickFalse)
01661 ThrowConvertInvalidArgumentException(option,argv[i]);
01662 break;
01663 }
01664 ThrowConvertException(OptionError,"UnrecognizedOption",option)
01665 }
01666 case 'l':
01667 {
01668 if (LocaleCompare("label",option+1) == 0)
01669 {
01670 if (*option == '+')
01671 break;
01672 i++;
01673 if (i == (long) argc)
01674 ThrowConvertException(OptionError,"MissingArgument",option);
01675 break;
01676 }
01677 if (LocaleCompare("lat",option+1) == 0)
01678 {
01679 if (*option == '+')
01680 break;
01681 i++;
01682 if (i == (long) (argc-1))
01683 ThrowConvertException(OptionError,"MissingArgument",option);
01684 if (IsGeometry(argv[i]) == MagickFalse)
01685 ThrowConvertInvalidArgumentException(option,argv[i]);
01686 break;
01687 }
01688 if (LocaleCompare("layers",option+1) == 0)
01689 {
01690 long
01691 type;
01692
01693 if (*option == '+')
01694 break;
01695 i++;
01696 if (i == (long) (argc-1))
01697 ThrowConvertException(OptionError,"MissingArgument",option);
01698 type=ParseMagickOption(MagickLayerOptions,MagickFalse,argv[i]);
01699 if (type < 0)
01700 ThrowConvertException(OptionError,"UnrecognizedLayerMethod",
01701 argv[i]);
01702 break;
01703 }
01704 if (LocaleCompare("level",option+1) == 0)
01705 {
01706 i++;
01707 if (i == (long) (argc-1))
01708 ThrowConvertException(OptionError,"MissingArgument",option);
01709 if (IsGeometry(argv[i]) == MagickFalse)
01710 ThrowConvertInvalidArgumentException(option,argv[i]);
01711 break;
01712 }
01713 if (LocaleCompare("level-colors",option+1) == 0)
01714 {
01715 i++;
01716 if (i == (long) (argc-1))
01717 ThrowConvertException(OptionError,"MissingArgument",option);
01718 break;
01719 }
01720 if (LocaleCompare("linewidth",option+1) == 0)
01721 {
01722 if (*option == '+')
01723 break;
01724 i++;
01725 if (i == (long) (argc-1))
01726 ThrowConvertException(OptionError,"MissingArgument",option);
01727 if (IsGeometry(argv[i]) == MagickFalse)
01728 ThrowConvertInvalidArgumentException(option,argv[i]);
01729 break;
01730 }
01731 if (LocaleCompare("liquid-rescale",option+1) == 0)
01732 {
01733 i++;
01734 if (i == (long) (argc-1))
01735 ThrowConvertException(OptionError,"MissingArgument",option);
01736 if (IsGeometry(argv[i]) == MagickFalse)
01737 ThrowConvertInvalidArgumentException(option,argv[i]);
01738 break;
01739 }
01740 if (LocaleCompare("limit",option+1) == 0)
01741 {
01742 char
01743 *p;
01744
01745 double
01746 value;
01747
01748 long
01749 resource;
01750
01751 if (*option == '+')
01752 break;
01753 i++;
01754 if (i == (long) argc)
01755 ThrowConvertException(OptionError,"MissingArgument",option);
01756 resource=ParseMagickOption(MagickResourceOptions,MagickFalse,
01757 argv[i]);
01758 if (resource < 0)
01759 ThrowConvertException(OptionError,"UnrecognizedResourceType",
01760 argv[i]);
01761 i++;
01762 if (i == (long) argc)
01763 ThrowConvertException(OptionError,"MissingArgument",option);
01764 value=strtod(argv[i],&p);
01765 if ((p == argv[i]) && (LocaleCompare("unlimited",argv[i]) != 0))
01766 ThrowConvertInvalidArgumentException(option,argv[i]);
01767 break;
01768 }
01769 if (LocaleCompare("linear-stretch",option+1) == 0)
01770 {
01771 i++;
01772 if (i == (long) (argc-1))
01773 ThrowConvertException(OptionError,"MissingArgument",option);
01774 if (IsGeometry(argv[i]) == MagickFalse)
01775 ThrowConvertInvalidArgumentException(option,argv[i]);
01776 break;
01777 }
01778 if (LocaleCompare("list",option+1) == 0)
01779 {
01780 long
01781 list;
01782
01783 if (*option == '+')
01784 break;
01785 i++;
01786 if (i == (long) argc)
01787 ThrowConvertException(OptionError,"MissingArgument",option);
01788 list=ParseMagickOption(MagickListOptions,MagickFalse,argv[i]);
01789 if (list < 0)
01790 ThrowConvertException(OptionError,"UnrecognizedListType",argv[i]);
01791 (void) MogrifyImageInfo(image_info,(int) (i-j+1),(const char **)
01792 argv+j,exception);
01793 DestroyConvert();
01794 return(MagickTrue);
01795 }
01796 if (LocaleCompare("log",option+1) == 0)
01797 {
01798 if (*option == '+')
01799 break;
01800 i++;
01801 if ((i == (long) argc) ||
01802 (strchr(argv[i],'%') == (char *) NULL))
01803 ThrowConvertException(OptionError,"MissingArgument",option);
01804 break;
01805 }
01806 if (LocaleCompare("loop",option+1) == 0)
01807 {
01808 if (*option == '+')
01809 break;
01810 i++;
01811 if (i == (long) (argc-1))
01812 ThrowConvertException(OptionError,"MissingArgument",option);
01813 if (IsGeometry(argv[i]) == MagickFalse)
01814 ThrowConvertInvalidArgumentException(option,argv[i]);
01815 break;
01816 }
01817 ThrowConvertException(OptionError,"UnrecognizedOption",option)
01818 }
01819 case 'm':
01820 {
01821 if (LocaleCompare("map",option+1) == 0)
01822 {
01823 if (*option == '+')
01824 break;
01825 i++;
01826 if (i == (long) (argc-1))
01827 ThrowConvertException(OptionError,"MissingArgument",option);
01828 break;
01829 }
01830 if (LocaleCompare("mask",option+1) == 0)
01831 {
01832 if (*option == '+')
01833 break;
01834 i++;
01835 if (i == (long) (argc-1))
01836 ThrowConvertException(OptionError,"MissingArgument",option);
01837 break;
01838 }
01839 if (LocaleCompare("matte",option+1) == 0)
01840 break;
01841 if (LocaleCompare("mattecolor",option+1) == 0)
01842 {
01843 if (*option == '+')
01844 break;
01845 i++;
01846 if (i == (long) (argc-1))
01847 ThrowConvertException(OptionError,"MissingArgument",option);
01848 break;
01849 }
01850 if (LocaleCompare("median",option+1) == 0)
01851 {
01852 if (*option == '+')
01853 break;
01854 i++;
01855 if (i == (long) (argc-1))
01856 ThrowConvertException(OptionError,"MissingArgument",option);
01857 if (IsGeometry(argv[i]) == MagickFalse)
01858 ThrowConvertInvalidArgumentException(option,argv[i]);
01859 break;
01860 }
01861 if (LocaleCompare("modulate",option+1) == 0)
01862 {
01863 if (*option == '+')
01864 break;
01865 i++;
01866 if (i == (long) (argc-1))
01867 ThrowConvertException(OptionError,"MissingArgument",option);
01868 if (IsGeometry(argv[i]) == MagickFalse)
01869 ThrowConvertInvalidArgumentException(option,argv[i]);
01870 break;
01871 }
01872 if (LocaleCompare("monitor",option+1) == 0)
01873 break;
01874 if (LocaleCompare("monochrome",option+1) == 0)
01875 break;
01876 if (LocaleCompare("morph",option+1) == 0)
01877 {
01878 if (*option == '+')
01879 break;
01880 i++;
01881 if (i == (long) (argc-1))
01882 ThrowConvertException(OptionError,"MissingArgument",option);
01883 if (IsGeometry(argv[i]) == MagickFalse)
01884 ThrowConvertInvalidArgumentException(option,argv[i]);
01885 break;
01886 }
01887 if (LocaleCompare("mosaic",option+1) == 0)
01888 break;
01889 if (LocaleCompare("motion-blur",option+1) == 0)
01890 {
01891 if (*option == '+')
01892 break;
01893 i++;
01894 if (i == (long) (argc-1))
01895 ThrowConvertException(OptionError,"MissingArgument",option);
01896 if (IsGeometry(argv[i]) == MagickFalse)
01897 ThrowConvertInvalidArgumentException(option,argv[i]);
01898 break;
01899 }
01900 ThrowConvertException(OptionError,"UnrecognizedOption",option)
01901 }
01902 case 'n':
01903 {
01904 if (LocaleCompare("negate",option+1) == 0)
01905 break;
01906 if (LocaleCompare("noise",option+1) == 0)
01907 {
01908 i++;
01909 if (i == (long) (argc-1))
01910 ThrowConvertException(OptionError,"MissingArgument",option);
01911 if (*option == '+')
01912 {
01913 long
01914 noise;
01915
01916 noise=ParseMagickOption(MagickNoiseOptions,MagickFalse,argv[i]);
01917 if (noise < 0)
01918 ThrowConvertException(OptionError,"UnrecognizedNoiseType",
01919 argv[i]);
01920 break;
01921 }
01922 if (IsGeometry(argv[i]) == MagickFalse)
01923 ThrowConvertInvalidArgumentException(option,argv[i]);
01924 break;
01925 }
01926 if (LocaleCompare("noop",option+1) == 0)
01927 break;
01928 if (LocaleCompare("normalize",option+1) == 0)
01929 break;
01930 ThrowConvertException(OptionError,"UnrecognizedOption",option)
01931 }
01932 case 'o':
01933 {
01934 if (LocaleCompare("opaque",option+1) == 0)
01935 {
01936 i++;
01937 if (i == (long) (argc-1))
01938 ThrowConvertException(OptionError,"MissingArgument",option);
01939 break;
01940 }
01941 if (LocaleCompare("ordered-dither",option+1) == 0)
01942 {
01943 if (*option == '+')
01944 break;
01945 i++;
01946 if (i == (long) (argc-1))
01947 ThrowConvertException(OptionError,"MissingArgument",option);
01948 break;
01949 }
01950 if (LocaleCompare("orient",option+1) == 0)
01951 {
01952 long
01953 orientation;
01954
01955 if (*option == '+')
01956 break;
01957 i++;
01958 if (i == (long) (argc-1))
01959 ThrowConvertException(OptionError,"MissingArgument",option);
01960 orientation=ParseMagickOption(MagickOrientationOptions,
01961 MagickFalse,argv[i]);
01962 if (orientation < 0)
01963 ThrowConvertException(OptionError,"UnrecognizedImageOrientation",
01964 argv[i]);
01965 break;
01966 }
01967 ThrowConvertException(OptionError,"UnrecognizedOption",argv[i])
01968 }
01969 case 'p':
01970 {
01971 if (LocaleCompare("page",option+1) == 0)
01972 {
01973 if (*option == '+')
01974 break;
01975 i++;
01976 if (i == (long) argc)
01977 ThrowConvertException(OptionError,"MissingArgument",option);
01978 break;
01979 }
01980 if (LocaleCompare("paint",option+1) == 0)
01981 {
01982 if (*option == '+')
01983 break;
01984 i++;
01985 if (i == (long) (argc-1))
01986 ThrowConvertException(OptionError,"MissingArgument",option);
01987 if (IsGeometry(argv[i]) == MagickFalse)
01988 ThrowConvertInvalidArgumentException(option,argv[i]);
01989 break;
01990 }
01991 if (LocaleCompare("ping",option+1) == 0)
01992 break;
01993 if (LocaleCompare("pointsize",option+1) == 0)
01994 {
01995 if (*option == '+')
01996 break;
01997 i++;
01998 if (i == (long) (argc-1))
01999 ThrowConvertException(OptionError,"MissingArgument",option);
02000 if (IsGeometry(argv[i]) == MagickFalse)
02001 ThrowConvertInvalidArgumentException(option,argv[i]);
02002 break;
02003 }
02004 if (LocaleCompare("polaroid",option+1) == 0)
02005 {
02006 if (*option == '+')
02007 break;
02008 i++;
02009 if (i == (long) (argc-1))
02010 ThrowConvertException(OptionError,"MissingArgument",option);
02011 if (IsGeometry(argv[i]) == MagickFalse)
02012 ThrowConvertInvalidArgumentException(option,argv[i]);
02013 break;
02014 }
02015 if (LocaleCompare("posterize",option+1) == 0)
02016 {
02017 if (*option == '+')
02018 break;
02019 i++;
02020 if (i == (long) (argc-1))
02021 ThrowConvertException(OptionError,"MissingArgument",option);
02022 if (IsGeometry(argv[i]) == MagickFalse)
02023 ThrowConvertInvalidArgumentException(option,argv[i]);
02024 break;
02025 }
02026 if (LocaleCompare("preview",option+1) == 0)
02027 {
02028 long
02029 preview;
02030
02031 if (*option == '+')
02032 break;
02033 i++;
02034 if (i == (long) (argc-1))
02035 ThrowConvertException(OptionError,"MissingArgument",option);
02036 preview=ParseMagickOption(MagickPreviewOptions,MagickFalse,
02037 argv[i]);
02038 if (preview < 0)
02039 ThrowConvertException(OptionError,"UnrecognizedPreviewType",
02040 argv[i]);
02041 break;
02042 }
02043 if (LocaleCompare("print",option+1) == 0)
02044 {
02045 if (*option == '+')
02046 break;
02047 i++;
02048 if (i == (long) (argc-1))
02049 ThrowConvertException(OptionError,"MissingArgument",option);
02050 break;
02051 }
02052 if (LocaleCompare("process",option+1) == 0)
02053 {
02054 if (*option == '+')
02055 break;
02056 i++;
02057 if (i == (long) (argc-1))
02058 ThrowConvertException(OptionError,"MissingArgument",option);
02059 break;
02060 }
02061 if (LocaleCompare("profile",option+1) == 0)
02062 {
02063 i++;
02064 if (i == (long) (argc-1))
02065 ThrowConvertException(OptionError,"MissingArgument",option);
02066 break;
02067 }
02068 ThrowConvertException(OptionError,"UnrecognizedOption",option)
02069 }
02070 case 'q':
02071 {
02072 if (LocaleCompare("quality",option+1) == 0)
02073 {
02074 if (*option == '+')
02075 break;
02076 i++;
02077 if (i == (long) (argc-1))
02078 ThrowConvertException(OptionError,"MissingArgument",option);
02079 if (IsGeometry(argv[i]) == MagickFalse)
02080 ThrowConvertInvalidArgumentException(option,argv[i]);
02081 break;
02082 }
02083 if (LocaleCompare("quantize",option+1) == 0)
02084 {
02085 long
02086 colorspace;
02087
02088 if (*option == '+')
02089 break;
02090 i++;
02091 if (i == (long) (argc-1))
02092 ThrowConvertException(OptionError,"MissingArgument",option);
02093 colorspace=ParseMagickOption(MagickColorspaceOptions,
02094 MagickFalse,argv[i]);
02095 if (colorspace < 0)
02096 ThrowConvertException(OptionError,"UnrecognizedColorspace",
02097 argv[i]);
02098 break;
02099 }
02100 if (LocaleCompare("quiet",option+1) == 0)
02101 break;
02102 ThrowConvertException(OptionError,"UnrecognizedOption",option)
02103 }
02104 case 'r':
02105 {
02106 if (LocaleCompare("radial-blur",option+1) == 0)
02107 {
02108 i++;
02109 if (i == (long) (argc-1))
02110 ThrowConvertException(OptionError,"MissingArgument",option);
02111 if (IsGeometry(argv[i]) == MagickFalse)
02112 ThrowConvertInvalidArgumentException(option,argv[i]);
02113 break;
02114 }
02115 if (LocaleCompare("raise",option+1) == 0)
02116 {
02117 i++;
02118 if (i == (long) (argc-1))
02119 ThrowConvertException(OptionError,"MissingArgument",option);
02120 if (IsGeometry(argv[i]) == MagickFalse)
02121 ThrowConvertInvalidArgumentException(option,argv[i]);
02122 break;
02123 }
02124 if (LocaleCompare("random-threshold",option+1) == 0)
02125 {
02126 if (*option == '+')
02127 break;
02128 i++;
02129 if (i == (long) (argc-1))
02130 ThrowConvertException(OptionError,"MissingArgument",option);
02131 if (IsGeometry(argv[i]) == MagickFalse)
02132 ThrowConvertInvalidArgumentException(option,argv[i]);
02133 break;
02134 }
02135 if (LocaleCompare("recolor",option+1) == 0)
02136 {
02137 if (*option == '+')
02138 break;
02139 i++;
02140 if (i == (long) (argc-1))
02141 ThrowConvertException(OptionError,"MissingArgument",option);
02142 if (IsGeometry(argv[i]) == MagickFalse)
02143 ThrowConvertInvalidArgumentException(option,argv[i]);
02144 break;
02145 }
02146 if (LocaleCompare("red-primary",option+1) == 0)
02147 {
02148 if (*option == '+')
02149 break;
02150 i++;
02151 if (i == (long) (argc-1))
02152 ThrowConvertException(OptionError,"MissingArgument",option);
02153 if (IsGeometry(argv[i]) == MagickFalse)
02154 ThrowConvertInvalidArgumentException(option,argv[i]);
02155 break;
02156 }
02157 if (LocaleCompare("regard-warnings",option+1) == 0)
02158 break;
02159 if (LocaleCompare("region",option+1) == 0)
02160 {
02161 if (*option == '+')
02162 break;
02163 i++;
02164 if (i == (long) (argc-1))
02165 ThrowConvertException(OptionError,"MissingArgument",option);
02166 if (IsGeometry(argv[i]) == MagickFalse)
02167 ThrowConvertInvalidArgumentException(option,argv[i]);
02168 break;
02169 }
02170 if (LocaleCompare("remap",option+1) == 0)
02171 {
02172 if (*option == '+')
02173 break;
02174 i++;
02175 if (i == (long) (argc-1))
02176 ThrowConvertException(OptionError,"MissingArgument",option);
02177 break;
02178 }
02179 if (LocaleCompare("render",option+1) == 0)
02180 break;
02181 if (LocaleCompare("repage",option+1) == 0)
02182 {
02183 if (*option == '+')
02184 break;
02185 i++;
02186 if (i == (long) (argc-1))
02187 ThrowConvertException(OptionError,"MissingArgument",option);
02188 if (IsGeometry(argv[i]) == MagickFalse)
02189 ThrowConvertInvalidArgumentException(option,argv[i]);
02190 break;
02191 }
02192 if (LocaleCompare("resample",option+1) == 0)
02193 {
02194 if (*option == '+')
02195 break;
02196 i++;
02197 if (i == (long) (argc-1))
02198 ThrowConvertException(OptionError,"MissingArgument",option);
02199 if (IsGeometry(argv[i]) == MagickFalse)
02200 ThrowConvertInvalidArgumentException(option,argv[i]);
02201 break;
02202 }
02203 if (LocaleCompare("resize",option+1) == 0)
02204 {
02205 if (*option == '+')
02206 break;
02207 i++;
02208 if (i == (long) (argc-1))
02209 ThrowConvertException(OptionError,"MissingArgument",option);
02210 if (IsGeometry(argv[i]) == MagickFalse)
02211 ThrowConvertInvalidArgumentException(option,argv[i]);
02212 break;
02213 }
02214 if (LocaleNCompare("respect-parentheses",option+1,17) == 0)
02215 {
02216 respect_parenthesis=(*option == '-') ? MagickTrue : MagickFalse;
02217 break;
02218 }
02219 if (LocaleCompare("reverse",option+1) == 0)
02220 break;
02221 if (LocaleCompare("roll",option+1) == 0)
02222 {
02223 if (*option == '+')
02224 break;
02225 i++;
02226 if (i == (long) (argc-1))
02227 ThrowConvertException(OptionError,"MissingArgument",option);
02228 if (IsGeometry(argv[i]) == MagickFalse)
02229 ThrowConvertInvalidArgumentException(option,argv[i]);
02230 break;
02231 }
02232 if (LocaleCompare("rotate",option+1) == 0)
02233 {
02234 i++;
02235 if (i == (long) (argc-1))
02236 ThrowConvertException(OptionError,"MissingArgument",option);
02237 if (IsGeometry(argv[i]) == MagickFalse)
02238 ThrowConvertInvalidArgumentException(option,argv[i]);
02239 break;
02240 }
02241 ThrowConvertException(OptionError,"UnrecognizedOption",option)
02242 }
02243 case 's':
02244 {
02245 if (LocaleCompare("sample",option+1) == 0)
02246 {
02247 if (*option == '+')
02248 break;
02249 i++;
02250 if (i == (long) (argc-1))
02251 ThrowConvertException(OptionError,"MissingArgument",option);
02252 if (IsGeometry(argv[i]) == MagickFalse)
02253 ThrowConvertInvalidArgumentException(option,argv[i]);
02254 break;
02255 }
02256 if (LocaleCompare("sampling-factor",option+1) == 0)
02257 {
02258 if (*option == '+')
02259 break;
02260 i++;
02261 if (i == (long) (argc-1))
02262 ThrowConvertException(OptionError,"MissingArgument",option);
02263 if (IsGeometry(argv[i]) == MagickFalse)
02264 ThrowConvertInvalidArgumentException(option,argv[i]);
02265 break;
02266 }
02267 if (LocaleCompare("scale",option+1) == 0)
02268 {
02269 if (*option == '+')
02270 break;
02271 i++;
02272 if (i == (long) (argc-1))
02273 ThrowConvertException(OptionError,"MissingArgument",option);
02274 if (IsGeometry(argv[i]) == MagickFalse)
02275 ThrowConvertInvalidArgumentException(option,argv[i]);
02276 break;
02277 }
02278 if (LocaleCompare("scene",option+1) == 0)
02279 {
02280 if (*option == '+')
02281 break;
02282 i++;
02283 if (i == (long) (argc-1))
02284 ThrowConvertException(OptionError,"MissingArgument",option);
02285 if (IsGeometry(argv[i]) == MagickFalse)
02286 ThrowConvertInvalidArgumentException(option,argv[i]);
02287 break;
02288 }
02289 if (LocaleCompare("seed",option+1) == 0)
02290 {
02291 if (*option == '+')
02292 break;
02293 i++;
02294 if (i == (long) (argc-1))
02295 ThrowConvertException(OptionError,"MissingArgument",option);
02296 if (IsGeometry(argv[i]) == MagickFalse)
02297 ThrowConvertInvalidArgumentException(option,argv[i]);
02298 break;
02299 }
02300 if (LocaleCompare("segment",option+1) == 0)
02301 {
02302 if (*option == '+')
02303 break;
02304 i++;
02305 if (i == (long) (argc-1))
02306 ThrowConvertException(OptionError,"MissingArgument",option);
02307 if (IsGeometry(argv[i]) == MagickFalse)
02308 ThrowConvertInvalidArgumentException(option,argv[i]);
02309 break;
02310 }
02311 if (LocaleCompare("selective-blur",option+1) == 0)
02312 {
02313 i++;
02314 if (i == (long) (argc-1))
02315 ThrowConvertException(OptionError,"MissingArgument",option);
02316 if (IsGeometry(argv[i]) == MagickFalse)
02317 ThrowConvertInvalidArgumentException(option,argv[i]);
02318 break;
02319 }
02320 if (LocaleCompare("separate",option+1) == 0)
02321 break;
02322 if (LocaleCompare("sepia-tone",option+1) == 0)
02323 {
02324 if (*option == '+')
02325 break;
02326 i++;
02327 if (i == (long) (argc-1))
02328 ThrowConvertException(OptionError,"MissingArgument",option);
02329 if (IsGeometry(argv[i]) == MagickFalse)
02330 ThrowConvertInvalidArgumentException(option,argv[i]);
02331 break;
02332 }
02333 if (LocaleCompare("set",option+1) == 0)
02334 {
02335 i++;
02336 if (i == (long) argc)
02337 ThrowConvertException(OptionError,"MissingArgument",option);
02338 if (*option == '+')
02339 break;
02340 i++;
02341 if (i == (long) argc)
02342 ThrowConvertException(OptionError,"MissingArgument",option);
02343 break;
02344 }
02345 if (LocaleCompare("shade",option+1) == 0)
02346 {
02347 i++;
02348 if (i == (long) (argc-1))
02349 ThrowConvertException(OptionError,"MissingArgument",option);
02350 if (IsGeometry(argv[i]) == MagickFalse)
02351 ThrowConvertInvalidArgumentException(option,argv[i]);
02352 break;
02353 }
02354 if (LocaleCompare("shadow",option+1) == 0)
02355 {
02356 if (*option == '+')
02357 break;
02358 i++;
02359 if (i == (long) (argc-1))
02360 ThrowConvertException(OptionError,"MissingArgument",option);
02361 if (IsGeometry(argv[i]) == MagickFalse)
02362 ThrowConvertInvalidArgumentException(option,argv[i]);
02363 break;
02364 }
02365 if (LocaleCompare("sharpen",option+1) == 0)
02366 {
02367 i++;
02368 if (i == (long) (argc-1))
02369 ThrowConvertException(OptionError,"MissingArgument",option);
02370 if (IsGeometry(argv[i]) == MagickFalse)
02371 ThrowConvertInvalidArgumentException(option,argv[i]);
02372 break;
02373 }
02374 if (LocaleCompare("shave",option+1) == 0)
02375 {
02376 if (*option == '+')
02377 break;
02378 i++;
02379 if (i == (long) (argc-1))
02380 ThrowConvertException(OptionError,"MissingArgument",option);
02381 if (IsGeometry(argv[i]) == MagickFalse)
02382 ThrowConvertInvalidArgumentException(option,argv[i]);
02383 break;
02384 }
02385 if (LocaleCompare("shear",option+1) == 0)
02386 {
02387 i++;
02388 if (i == (long) (argc-1))
02389 ThrowConvertException(OptionError,"MissingArgument",option);
02390 if (IsGeometry(argv[i]) == MagickFalse)
02391 ThrowConvertInvalidArgumentException(option,argv[i]);
02392 break;
02393 }
02394 if (LocaleCompare("sigmoidal-contrast",option+1) == 0)
02395 {
02396 i++;
02397 if (i == (long) (argc-1))
02398 ThrowConvertException(OptionError,"MissingArgument",option);
02399 if (IsGeometry(argv[i]) == MagickFalse)
02400 ThrowConvertInvalidArgumentException(option,argv[i]);
02401 break;
02402 }
02403 if (LocaleCompare("size",option+1) == 0)
02404 {
02405 if (*option == '+')
02406 break;
02407 i++;
02408 if (i == (long) (argc-1))
02409 ThrowConvertException(OptionError,"MissingArgument",option);
02410 if (IsGeometry(argv[i]) == MagickFalse)
02411 ThrowConvertInvalidArgumentException(option,argv[i]);
02412 break;
02413 }
02414 if (LocaleCompare("sketch",option+1) == 0)
02415 {
02416 if (*option == '+')
02417 break;
02418 i++;
02419 if (i == (long) (argc-1))
02420 ThrowConvertException(OptionError,"MissingArgument",option);
02421 if (IsGeometry(argv[i]) == MagickFalse)
02422 ThrowConvertInvalidArgumentException(option,argv[i]);
02423 break;
02424 }
02425 if (LocaleCompare("solarize",option+1) == 0)
02426 {
02427 if (*option == '+')
02428 break;
02429 i++;
02430 if (i == (long) (argc-1))
02431 ThrowConvertException(OptionError,"MissingArgument",option);
02432 if (IsGeometry(argv[i]) == MagickFalse)
02433 ThrowConvertInvalidArgumentException(option,argv[i]);
02434 break;
02435 }
02436 if (LocaleCompare("sparse-color",option+1) == 0)
02437 {
02438 long
02439 op;
02440
02441 i++;
02442 if (i == (long) argc)
02443 ThrowConvertException(OptionError,"MissingArgument",option);
02444 op=ParseMagickOption(MagickSparseColorOptions,MagickFalse,argv[i]);
02445 if (op < 0)
02446 ThrowConvertException(OptionError,"UnrecognizedSparseColorMethod",
02447 argv[i]);
02448 i++;
02449 if (i == (long) (argc-1))
02450 ThrowConvertException(OptionError,"MissingArgument",option);
02451 break;
02452 }
02453 if (LocaleCompare("splice",option+1) == 0)
02454 {
02455 if (*option == '+')
02456 break;
02457 i++;
02458 if (i == (long) (argc-1))
02459 ThrowConvertException(OptionError,"MissingArgument",option);
02460 if (IsGeometry(argv[i]) == MagickFalse)
02461 ThrowConvertInvalidArgumentException(option,argv[i]);
02462 break;
02463 }
02464 if (LocaleCompare("spread",option+1) == 0)
02465 {
02466 if (*option == '+')
02467 break;
02468 i++;
02469 if ((i == (long) (argc-1)) ||
02470 (IsGeometry(argv[i]) == MagickFalse))
02471 ThrowConvertException(OptionError,"MissingArgument",option);
02472 break;
02473 }
02474 if (LocaleCompare("stretch",option+1) == 0)
02475 {
02476 long
02477 stretch;
02478
02479 if (*option == '+')
02480 break;
02481 i++;
02482 if (i == (long) (argc-1))
02483 ThrowConvertException(OptionError,"MissingArgument",option);
02484 stretch=ParseMagickOption(MagickStretchOptions,MagickFalse,
02485 argv[i]);
02486 if (stretch < 0)
02487 ThrowConvertException(OptionError,"UnrecognizedStyleType",
02488 argv[i]);
02489 break;
02490 }
02491 if (LocaleCompare("strip",option+1) == 0)
02492 break;
02493 if (LocaleCompare("stroke",option+1) == 0)
02494 {
02495 if (*option == '+')
02496 break;
02497 i++;
02498 if (i == (long) (argc-1))
02499 ThrowConvertException(OptionError,"MissingArgument",option);
02500 break;
02501 }
02502 if (LocaleCompare("strokewidth",option+1) == 0)
02503 {
02504 if (*option == '+')
02505 break;
02506 i++;
02507 if (i == (long) (argc-1))
02508 ThrowConvertException(OptionError,"MissingArgument",option);
02509 if (IsGeometry(argv[i]) == MagickFalse)
02510 ThrowConvertInvalidArgumentException(option,argv[i]);
02511 break;
02512 }
02513 if (LocaleCompare("style",option+1) == 0)
02514 {
02515 long
02516 style;
02517
02518 if (*option == '+')
02519 break;
02520 i++;
02521 if (i == (long) (argc-1))
02522 ThrowConvertException(OptionError,"MissingArgument",option);
02523 style=ParseMagickOption(MagickStyleOptions,MagickFalse,argv[i]);
02524 if (style < 0)
02525 ThrowConvertException(OptionError,"UnrecognizedStyleType",
02526 argv[i]);
02527 break;
02528 }
02529 if (LocaleCompare("support",option+1) == 0)
02530 {
02531 i++;
02532 break;
02533 }
02534 if (LocaleCompare("swap",option+1) == 0)
02535 {
02536 if (*option == '+')
02537 break;
02538 i++;
02539 if (i == (long) (argc-1))
02540 ThrowConvertException(OptionError,"MissingArgument",option);
02541 if (IsGeometry(argv[i]) == MagickFalse)
02542 ThrowConvertInvalidArgumentException(option,argv[i]);
02543 break;
02544 }
02545 if (LocaleCompare("swirl",option+1) == 0)
02546 {
02547 if (*option == '+')
02548 break;
02549 i++;
02550 if (i == (long) (argc-1))
02551 ThrowConvertException(OptionError,"MissingArgument",option);
02552 if (IsGeometry(argv[i]) == MagickFalse)
02553 ThrowConvertInvalidArgumentException(option,argv[i]);
02554 break;
02555 }
02556 ThrowConvertException(OptionError,"UnrecognizedOption",option)
02557 }
02558 case 't':
02559 {
02560 if (LocaleCompare("taint",option+1) == 0)
02561 break;
02562 if (LocaleCompare("texture",option+1) == 0)
02563 {
02564 if (*option == '+')
02565 break;
02566 i++;
02567 if (i == (long) (argc-1))
02568 ThrowConvertException(OptionError,"MissingArgument",option);
02569 break;
02570 }
02571 if (LocaleCompare("thumbnail",option+1) == 0)
02572 {
02573 if (*option == '+')
02574 break;
02575 i++;
02576 if (i == (long) (argc-1))
02577 ThrowConvertException(OptionError,"MissingArgument",option);
02578 if (IsGeometry(argv[i]) == MagickFalse)
02579 ThrowConvertInvalidArgumentException(option,argv[i]);
02580 break;
02581 }
02582 if (LocaleCompare("threshold",option+1) == 0)
02583 {
02584 if (*option == '+')
02585 break;
02586 i++;
02587 if (i == (long) (argc-1))
02588 ThrowConvertException(OptionError,"MissingArgument",option);
02589 if (IsGeometry(argv[i]) == MagickFalse)
02590 ThrowConvertInvalidArgumentException(option,argv[i]);
02591 break;
02592 }
02593 if (LocaleCompare("tile",option+1) == 0)
02594 {
02595 if (*option == '+')
02596 break;
02597 i++;
02598 if (i == (long) (argc-1))
02599 ThrowConvertException(OptionError,"MissingArgument",option);
02600 break;
02601 }
02602 if (LocaleCompare("tile-offset",option+1) == 0)
02603 {
02604 if (*option == '+')
02605 break;
02606 i++;
02607 if (i == (long) (argc-1))
02608 ThrowConvertException(OptionError,"MissingArgument",option);
02609 if (IsGeometry(argv[i]) == MagickFalse)
02610 ThrowConvertInvalidArgumentException(option,argv[i]);
02611 break;
02612 }
02613 if (LocaleCompare("tint",option+1) == 0)
02614 {
02615 if (*option == '+')
02616 break;
02617 i++;
02618 if (i == (long) (argc-1))
02619 ThrowConvertException(OptionError,"MissingArgument",option);
02620 if (IsGeometry(argv[i]) == MagickFalse)
02621 ThrowConvertInvalidArgumentException(option,argv[i]);
02622 break;
02623 }
02624 if (LocaleCompare("transform",option+1) == 0)
02625 break;
02626 if (LocaleCompare("transparent",option+1) == 0)
02627 {
02628 i++;
02629 if (i == (long) (argc-1))
02630 ThrowConvertException(OptionError,"MissingArgument",option);
02631 break;
02632 }
02633 if (LocaleCompare("transparent-color",option+1) == 0)
02634 {
02635 if (*option == '+')
02636 break;
02637 i++;
02638 if (i == (long) (argc-1))
02639 ThrowConvertException(OptionError,"MissingArgument",option);
02640 break;
02641 }
02642 if (LocaleCompare("transpose",option+1) == 0)
02643 break;
02644 if (LocaleCompare("transverse",option+1) == 0)
02645 break;
02646 if (LocaleCompare("treedepth",option+1) == 0)
02647 {
02648 if (*option == '+')
02649 break;
02650 i++;
02651 if (i == (long) (argc-1))
02652 ThrowConvertException(OptionError,"MissingArgument",option);
02653 if (IsGeometry(argv[i]) == MagickFalse)
02654 ThrowConvertInvalidArgumentException(option,argv[i]);
02655 break;
02656 }
02657 if (LocaleCompare("trim",option+1) == 0)
02658 break;
02659 if (LocaleCompare("type",option+1) == 0)
02660 {
02661 long
02662 type;
02663
02664 if (*option == '+')
02665 break;
02666 i++;
02667 if (i == (long) (argc-1))
02668 ThrowConvertException(OptionError,"MissingArgument",option);
02669 type=ParseMagickOption(MagickTypeOptions,MagickFalse,argv[i]);
02670 if (type < 0)
02671 ThrowConvertException(OptionError,"UnrecognizedImageType",
02672 argv[i]);
02673 break;
02674 }
02675 ThrowConvertException(OptionError,"UnrecognizedOption",option)
02676 }
02677 case 'u':
02678 {
02679 if (LocaleCompare("undercolor",option+1) == 0)
02680 {
02681 if (*option == '+')
02682 break;
02683 i++;
02684 if (i == (long) (argc-1))
02685 ThrowConvertException(OptionError,"MissingArgument",option);
02686 break;
02687 }
02688 if (LocaleCompare("unique-colors",option+1) == 0)
02689 break;
02690 if (LocaleCompare("units",option+1) == 0)
02691 {
02692 long
02693 units;
02694
02695 if (*option == '+')
02696 break;
02697 i++;
02698 if (i == (long) (argc-1))
02699 ThrowConvertException(OptionError,"MissingArgument",option);
02700 units=ParseMagickOption(MagickResolutionOptions,MagickFalse,
02701 argv[i]);
02702 if (units < 0)
02703 ThrowConvertException(OptionError,"UnrecognizedUnitsType",
02704 argv[i]);
02705 break;
02706 }
02707 if (LocaleCompare("unsharp",option+1) == 0)
02708 {
02709 if (*option == '+')
02710 break;
02711 i++;
02712 if (i == (long) (argc-1))
02713 ThrowConvertException(OptionError,"MissingArgument",option);
02714 if (IsGeometry(argv[i]) == MagickFalse)
02715 ThrowConvertInvalidArgumentException(option,argv[i]);
02716 break;
02717 }
02718 ThrowConvertException(OptionError,"UnrecognizedOption",option)
02719 }
02720 case 'v':
02721 {
02722 if (LocaleCompare("verbose",option+1) == 0)
02723 break;
02724 if ((LocaleCompare("version",option+1) == 0) ||
02725 (LocaleCompare("-version",option+1) == 0))
02726 {
02727 (void) fprintf(stdout,"Version: %s\n",
02728 GetMagickVersion((unsigned long *) NULL));
02729 (void) fprintf(stdout,"Copyright: %s\n",GetMagickCopyright());
02730 (void) fprintf(stdout,"Features: %s\n\n",GetMagickFeatures());
02731 break;
02732 }
02733 if (LocaleCompare("view",option+1) == 0)
02734 {
02735 if (*option == '+')
02736 break;
02737 i++;
02738 if (i == (long) (argc-1))
02739 ThrowConvertException(OptionError,"MissingArgument",option);
02740 break;
02741 }
02742 if (LocaleCompare("vignette",option+1) == 0)
02743 {
02744 if (*option == '+')
02745 break;
02746 i++;
02747 if (i == (long) (argc-1))
02748 ThrowConvertException(OptionError,"MissingArgument",option);
02749 if (IsGeometry(argv[i]) == MagickFalse)
02750 ThrowConvertInvalidArgumentException(option,argv[i]);
02751 break;
02752 }
02753 if (LocaleCompare("virtual-pixel",option+1) == 0)
02754 {
02755 long
02756 method;
02757
02758 if (*option == '+')
02759 break;
02760 i++;
02761 if (i == (long) (argc-1))
02762 ThrowConvertException(OptionError,"MissingArgument",option);
02763 method=ParseMagickOption(MagickVirtualPixelOptions,MagickFalse,
02764 argv[i]);
02765 if (method < 0)
02766 ThrowConvertException(OptionError,
02767 "UnrecognizedVirtualPixelMethod",argv[i]);
02768 break;
02769 }
02770 ThrowConvertException(OptionError,"UnrecognizedOption",option)
02771 }
02772 case 'w':
02773 {
02774 if (LocaleCompare("wave",option+1) == 0)
02775 {
02776 i++;
02777 if (i == (long) (argc-1))
02778 ThrowConvertException(OptionError,"MissingArgument",option);
02779 if (IsGeometry(argv[i]) == MagickFalse)
02780 ThrowConvertInvalidArgumentException(option,argv[i]);
02781 break;
02782 }
02783 if (LocaleCompare("weight",option+1) == 0)
02784 {
02785 if (*option == '+')
02786 break;
02787 i++;
02788 if (i == (long) (argc-1))
02789 ThrowConvertException(OptionError,"MissingArgument",option);
02790 break;
02791 }
02792 if (LocaleCompare("white-point",option+1) == 0)
02793 {
02794 if (*option == '+')
02795 break;
02796 i++;
02797 if (i == (long) (argc-1))
02798 ThrowConvertException(OptionError,"MissingArgument",option);
02799 if (IsGeometry(argv[i]) == MagickFalse)
02800 ThrowConvertInvalidArgumentException(option,argv[i]);
02801 break;
02802 }
02803 if (LocaleCompare("white-threshold",option+1) == 0)
02804 {
02805 if (*option == '+')
02806 break;
02807 i++;
02808 if (i == (long) (argc-1))
02809 ThrowConvertException(OptionError,"MissingArgument",option);
02810 if (IsGeometry(argv[i]) == MagickFalse)
02811 ThrowConvertInvalidArgumentException(option,argv[i]);
02812 break;
02813 }
02814 if (LocaleCompare("write",option+1) == 0)
02815 {
02816 i++;
02817 if (i == (long) (argc-1))
02818 ThrowConvertException(OptionError,"MissingArgument",option);
02819 break;
02820 }
02821 ThrowConvertException(OptionError,"UnrecognizedOption",option)
02822 }
02823 case '?':
02824 break;
02825 default:
02826 ThrowConvertException(OptionError,"UnrecognizedOption",option)
02827 }
02828 fire=ParseMagickOption(MagickImageListOptions,MagickFalse,option+1) < 0 ?
02829 MagickFalse : MagickTrue;
02830 if (fire != MagickFalse)
02831 FireImageStack(MagickTrue,MagickTrue,MagickTrue);
02832 }
02833 if (k != 0)
02834 ThrowConvertException(OptionError,"UnbalancedParenthesis",argv[i]);
02835 if (i-- != (long) (argc-1))
02836 ThrowConvertException(OptionError,"MissingAnImageFilename",argv[argc-1]);
02837 if (image == (Image *) NULL)
02838 ThrowConvertException(OptionError,"MissingAnImageFilename",argv[argc-1]);
02839 FinalizeImageSettings(image_info,image,MagickTrue);
02840 if (image == (Image *) NULL)
02841 ThrowConvertException(OptionError,"MissingAnImageFilename",argv[argc-1]);
02842 status&=WriteImages(image_info,image,argv[argc-1],exception);
02843 if (metadata != (char **) NULL)
02844 {
02845 char
02846 *text;
02847
02848 text=InterpretImageProperties(image_info,image,format);
02849 if (text == (char *) NULL)
02850 ThrowConvertException(ResourceLimitError,"MemoryAllocationFailed",
02851 GetExceptionMessage(errno));
02852 (void) ConcatenateString(&(*metadata),text);
02853 text=DestroyString(text);
02854 }
02855 DestroyConvert();
02856 return(status != 0 ? MagickTrue : MagickFalse);
02857 }