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