2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6 % CCCC OOO N N V V EEEEE RRRR TTTTT %
7 % C O O NN N V V E R R T %
8 % C O O N N N V V EEE RRRR T %
9 % C O O N NN V V E R R T %
10 % CCCC OOO N N V EEEEE R R T %
13 % Convert an image from one format to another. %
20 % Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization %
21 % dedicated to making software imaging solutions freely available. %
23 % You may not use this file except in compliance with the License. You may %
24 % obtain a copy of the License at %
26 % https://www.imagemagick.org/script/license.php %
28 % Unless required by applicable law or agreed to in writing, software %
29 % distributed under the License is distributed on an "AS IS" BASIS, %
30 % WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %
31 % See the License for the specific language governing permissions and %
32 % limitations under the License. %
34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
36 % Use the convert program to convert between image formats as well as resize
37 % an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample,
45 #include "MagickWand/studio.h"
46 #include "MagickWand/MagickWand.h"
47 #include "MagickWand/mogrify-private.h"
48 #include "MagickCore/string-private.h"
49 #include "MagickCore/utility-private.h"
53 #define ThrowFileException(exception,severity,tag,context) \
58 message=GetExceptionMessage(errno); \
59 (void) ThrowMagickException(exception,GetMagickModule(),severity, \
60 tag == (const char *) NULL ? "unknown" : tag,"'%s': %s",context,message); \
61 message=DestroyString(message); \
65 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
69 + C o n v e r t I m a g e C o m m a n d %
73 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
75 % ConvertImageCommand() reads one or more images, applies one or more image
76 % processing operations, and writes out the image in the same or differing
79 % The format of the ConvertImageCommand method is:
81 % MagickBooleanType ConvertImageCommand(ImageInfo *image_info,int argc,
82 % char **argv,char **metadata,ExceptionInfo *exception)
84 % A description of each parameter follows:
86 % o image_info: the image info.
88 % o argc: the number of elements in the argument vector.
90 % o argv: A text array containing the command line arguments.
92 % o metadata: any metadata is returned here.
94 % o exception: return any errors or warnings in this structure.
98 static MagickBooleanType ConcatenateImages(int argc,char **argv,
99 ExceptionInfo *exception)
117 output=fopen_utf8(argv[argc-1],"wb");
118 if (output == (FILE *) NULL)
120 ThrowFileException(exception,FileOpenError,"UnableToOpenFile",
125 for (i=2; i < (ssize_t) (argc-1); i++)
127 input=fopen_utf8(argv[i],"rb");
128 if (input == (FILE *) NULL)
130 ThrowFileException(exception,FileOpenError,"UnableToOpenFile",argv[i]);
133 for (c=fgetc(input); c != EOF; c=fgetc(input))
134 if (fputc((char) c,output) != c)
136 (void) fclose(input);
137 (void) remove_utf8(argv[i]);
139 (void) fclose(output);
143 static MagickBooleanType ConvertUsage(void)
146 *channel_operators[]=
148 "-channel-fx expression",
149 " exchange, extract, or transfer one or more image channels",
150 "-separate separate an image channel into a grayscale image",
155 "-debug events display copious debugging information",
156 "-distribute-cache port",
157 " distributed pixel cache spanning one or more servers",
158 "-help print program options",
159 "-list type print a list of supported option arguments",
160 "-log format format of debugging information",
161 "-version print version information",
166 "-adaptive-blur geometry",
167 " adaptively blur pixels; decrease effect near edges",
168 "-adaptive-resize geometry",
169 " adaptively resize image using 'mesh' interpolation",
170 "-adaptive-sharpen geometry",
171 " adaptively sharpen pixels; increase effect near edges",
172 "-alpha option on, activate, off, deactivate, set, opaque, copy",
173 " transparent, extract, background, or shape",
174 "-annotate geometry text",
175 " annotate the image with text",
176 "-auto-gamma automagically adjust gamma level of image",
177 "-auto-level automagically adjust color levels of image",
178 "-auto-orient automagically orient (rotate) image",
179 "-auto-threshold method",
180 " automatically perform image thresholding",
181 "-bench iterations measure performance",
182 "-black-threshold value",
183 " force all pixels below the threshold into black",
184 "-blue-shift factor simulate a scene at nighttime in the moonlight",
185 "-blur geometry reduce image noise and reduce detail levels",
186 "-border geometry surround image with a border of color",
187 "-bordercolor color border color",
188 "-brightness-contrast geometry",
189 " improve brightness / contrast of the image",
190 "-canny geometry detect edges in the image",
191 "-cdl filename color correct with a color decision list",
192 "-channel mask set the image channel mask",
193 "-charcoal radius simulate a charcoal drawing",
194 "-chop geometry remove pixels from the image interior",
195 "-clamp keep pixel values in range (0-QuantumRange)",
196 "-colorize value colorize the image with the fill color",
197 "-color-matrix matrix apply color correction to the image",
198 "-connected-components connectivity",
199 " connected-components uniquely labeled",
200 "-contrast enhance or reduce the image contrast",
201 "-contrast-stretch geometry",
202 " improve contrast by 'stretching' the intensity range",
203 "-convolve coefficients",
204 " apply a convolution kernel to the image",
205 "-cycle amount cycle the image colormap",
206 "-decipher filename convert cipher pixels to plain pixels",
207 "-deskew threshold straighten an image",
208 "-despeckle reduce the speckles within an image",
209 "-distort method args",
210 " distort images according to given method ad args",
211 "-draw string annotate the image with a graphic primitive",
212 "-edge radius apply a filter to detect edges in the image",
213 "-encipher filename convert plain pixels to cipher pixels",
214 "-emboss radius emboss an image",
215 "-enhance apply a digital filter to enhance a noisy image",
216 "-equalize perform histogram equalization to an image",
217 "-evaluate operator value",
218 " evaluate an arithmetic, relational, or logical expression",
219 "-extent geometry set the image size",
220 "-extract geometry extract area from image",
221 "-fft implements the discrete Fourier transform (DFT)",
222 "-flip flip image vertically",
223 "-floodfill geometry color",
224 " floodfill the image with color",
225 "-flop flop image horizontally",
226 "-frame geometry surround image with an ornamental border",
227 "-function name parameters",
228 " apply function over image values",
229 "-gamma value level of gamma correction",
230 "-gaussian-blur geometry",
231 " reduce image noise and reduce detail levels",
232 "-geometry geometry preferred size or location of the image",
233 "-grayscale method convert image to grayscale",
234 "-hough-lines geometry",
235 " identify lines in the image",
236 "-identify identify the format and characteristics of the image",
237 "-ift implements the inverse discrete Fourier transform (DFT)",
238 "-implode amount implode image pixels about the center",
239 "-kuwahara geometry edge preserving noise reduction filter",
240 "-lat geometry local adaptive thresholding",
241 "-level value adjust the level of image contrast",
242 "-level-colors color,color",
243 " level image with the given colors",
244 "-linear-stretch geometry",
245 " improve contrast by 'stretching with saturation'",
246 "-liquid-rescale geometry",
247 " rescale image with seam-carving",
248 "-local-contrast geometry",
249 " enhance local contrast",
250 "-mean-shift geometry delineate arbitrarily shaped clusters in the image",
251 "-median geometry apply a median filter to the image",
252 "-mode geometry make each pixel the 'predominant color' of the",
254 "-modulate value vary the brightness, saturation, and hue",
255 "-monochrome transform image to black and white",
256 "-morphology method kernel",
257 " apply a morphology method to the image",
258 "-motion-blur geometry",
259 " simulate motion blur",
260 "-negate replace every pixel with its complementary color ",
261 "-noise geometry add or reduce noise in an image",
262 "-normalize transform image to span the full range of colors",
263 "-opaque color change this color to the fill color",
264 "-ordered-dither NxN",
265 " add a noise pattern to the image with specific",
267 "-paint radius simulate an oil painting",
268 "-perceptible epsilon",
269 " pixel value less than |epsilon| become epsilon or",
271 "-polaroid angle simulate a Polaroid picture",
272 "-posterize levels reduce the image to a limited number of color levels",
273 "-profile filename add, delete, or apply an image profile",
274 "-quantize colorspace reduce colors in this colorspace",
275 "-raise value lighten/darken image edges to create a 3-D effect",
276 "-random-threshold low,high",
277 " random threshold the image",
278 "-range-threshold values",
279 " perform either hard or soft thresholding within some range of values in an image",
280 "-region geometry apply options to a portion of the image",
281 "-render render vector graphics",
282 "-resample geometry change the resolution of an image",
283 "-resize geometry resize the image",
284 "-roll geometry roll an image vertically or horizontally",
285 "-rotate degrees apply Paeth rotation to the image",
286 "-rotational-blur angle",
287 " rotational blur the image",
288 "-sample geometry scale image with pixel sampling",
289 "-scale geometry scale the image",
290 "-segment values segment an image",
291 "-selective-blur geometry",
292 " selectively blur pixels within a contrast threshold",
293 "-sepia-tone threshold",
294 " simulate a sepia-toned photo",
295 "-set property value set an image property",
296 "-shade degrees shade the image using a distant light source",
297 "-shadow geometry simulate an image shadow",
298 "-sharpen geometry sharpen the image",
299 "-shave geometry shave pixels from the image edges",
300 "-shear geometry slide one edge of the image along the X or Y axis",
301 "-sigmoidal-contrast geometry",
302 " increase the contrast without saturating highlights or",
304 "-sketch geometry simulate a pencil sketch",
305 "-solarize threshold negate all pixels above the threshold level",
306 "-sparse-color method args",
307 " fill in a image based on a few color points",
308 "-splice geometry splice the background color into the image",
309 "-spread radius displace image pixels by a random amount",
310 "-statistic type geometry",
311 " replace each pixel with corresponding statistic from the",
313 "-strip strip image of all profiles and comments",
314 "-swirl degrees swirl image pixels about the center",
315 "-threshold value threshold the image",
316 "-thumbnail geometry create a thumbnail of the image",
317 "-tile filename tile image when filling a graphic primitive",
318 "-tint value tint the image with the fill color",
319 "-transform affine transform image",
320 "-transparent color make this color transparent within the image",
321 "-transpose flip image vertically and rotate 90 degrees",
322 "-transverse flop image horizontally and rotate 270 degrees",
323 "-trim trim image edges",
324 "-type type image type",
325 "-unique-colors discard all but one of any pixel color",
326 "-unsharp geometry sharpen the image",
327 "-vignette geometry soften the edges of the image in vignette style",
328 "-wave geometry alter an image along a sine wave",
329 "-wavelet-denoise threshold",
330 " removes noise from the image using a wavelet transform",
331 "-white-threshold value",
332 " force all pixels above the threshold into white",
335 *sequence_operators[]=
337 "-append append an image sequence",
338 "-clut apply a color lookup table to the image",
339 "-coalesce merge a sequence of images",
340 "-combine combine a sequence of images",
341 "-compare mathematically and visually annotate the difference between an image and its reconstruction",
342 "-complex operator perform complex mathematics on an image sequence",
343 "-composite composite image",
344 "-copy geometry offset",
345 " copy pixels from one area of an image to another",
346 "-crop geometry cut out a rectangular region of the image",
347 "-deconstruct break down an image sequence into constituent parts",
348 "-evaluate-sequence operator",
349 " evaluate an arithmetic, relational, or logical expression",
350 "-flatten flatten a sequence of images",
351 "-fx expression apply mathematical expression to an image channel(s)",
352 "-hald-clut apply a Hald color lookup table to the image",
353 "-layers method optimize, merge, or compare image layers",
354 "-morph value morph an image sequence",
355 "-mosaic create a mosaic from an image sequence",
356 "-poly terms build a polynomial from the image sequence and the corresponding",
357 " terms (coefficients and degree pairs).",
358 "-print string interpret string and print to console",
359 "-process arguments process the image with a custom image filter",
360 "-smush geometry smush an image sequence together",
361 "-write filename write images to this file",
366 "-adjoin join images into a single multi-image file",
367 "-affine matrix affine transform matrix",
368 "-alpha option activate, deactivate, reset, or set the alpha channel",
369 "-antialias remove pixel-aliasing",
370 "-authenticate password",
371 " decipher image with this password",
372 "-attenuate value lessen (or intensify) when adding noise to an image",
373 "-background color background color",
374 "-bias value add bias when convolving an image",
375 "-black-point-compensation",
376 " use black point compensation",
377 "-blue-primary point chromaticity blue primary point",
378 "-bordercolor color border color",
379 "-caption string assign a caption to an image",
380 "-clip clip along the first path from the 8BIM profile",
381 "-clip-mask filename associate a clip mask with the image",
382 "-clip-path id clip along a named path from the 8BIM profile",
383 "-colors value preferred number of colors in the image",
384 "-colorspace type alternate image colorspace",
385 "-comment string annotate image with comment",
386 "-compose operator set image composite operator",
387 "-compress type type of pixel compression when writing the image",
388 "-define format:option",
389 " define one or more image format options",
390 "-delay value display the next image after pausing",
391 "-density geometry horizontal and vertical density of the image",
392 "-depth value image depth",
393 "-direction type render text right-to-left or left-to-right",
394 "-display server get image or font from this X server",
395 "-dispose method layer disposal method",
396 "-dither method apply error diffusion to image",
397 "-encoding type text encoding type",
398 "-endian type endianness (MSB or LSB) of the image",
399 "-family name render text with this font family",
400 "-features distance analyze image features (e.g. contrast, correlation)",
401 "-fill color color to use when filling a graphic primitive",
402 "-filter type use this filter when resizing an image",
403 "-font name render text with this font",
404 "-format \"string\" output formatted image characteristics",
405 "-fuzz distance colors within this distance are considered equal",
406 "-gravity type horizontal and vertical text placement",
407 "-green-primary point chromaticity green primary point",
408 "-intensity method method to generate an intensity value from a pixel",
409 "-intent type type of rendering intent when managing the image color",
410 "-interlace type type of image interlacing scheme",
411 "-interline-spacing value",
412 " set the space between two text lines",
413 "-interpolate method pixel color interpolation method",
414 "-interword-spacing value",
415 " set the space between two words",
416 "-kerning value set the space between two letters",
417 "-label string assign a label to an image",
418 "-limit type value pixel cache resource limit",
419 "-loop iterations add Netscape loop extension to your GIF animation",
420 "-matte store matte channel if the image has one",
421 "-mattecolor color frame color",
422 "-moments report image moments",
423 "-monitor monitor progress",
424 "-orient type image orientation",
425 "-page geometry size and location of an image canvas (setting)",
426 "-ping efficiently determine image attributes",
427 "-pointsize value font point size",
428 "-precision value maximum number of significant digits to print",
429 "-preview type image preview type",
430 "-quality value JPEG/MIFF/PNG compression level",
431 "-quiet suppress all warning messages",
432 "-read-mask filename associate a read mask with the image",
433 "-red-primary point chromaticity red primary point",
434 "-regard-warnings pay attention to warning messages",
435 "-remap filename transform image colors to match this set of colors",
436 "-repage geometry size and location of an image canvas",
437 "-respect-parentheses settings remain in effect until parenthesis boundary",
438 "-sampling-factor geometry",
439 " horizontal and vertical sampling factor",
440 "-scene value image scene number",
441 "-seed value seed a new sequence of pseudo-random numbers",
442 "-size geometry width and height of image",
443 "-stretch type render text with this font stretch",
444 "-stroke color graphic primitive stroke color",
445 "-strokewidth value graphic primitive stroke width",
446 "-style type render text with this font style",
447 "-support factor resize support: > 1.0 is blurry, < 1.0 is sharp",
448 "-synchronize synchronize image to storage device",
449 "-taint declare the image as modified",
450 "-texture filename name of texture to tile onto the image background",
451 "-tile-offset geometry",
453 "-treedepth value color tree depth",
454 "-transparent-color color",
455 " transparent color",
456 "-undercolor color annotation bounding box color",
457 "-units type the units of image resolution",
458 "-verbose print detailed information about the image",
459 "-view FlashPix viewing transforms",
460 "-virtual-pixel method",
461 " virtual pixel access method",
462 "-weight type render text with this font weight",
463 "-white-point point chromaticity white point",
464 "-write-mask filename associate a write mask with the image",
469 "-clone indexes clone an image",
470 "-delete indexes delete the image from the image sequence",
471 "-duplicate count,indexes",
472 " duplicate an image one or more times",
473 "-insert index insert last image into the image sequence",
474 "-reverse reverse image sequence",
475 "-swap indexes swap two images in the image sequence",
482 ListMagickVersion(stdout);
483 (void) printf("Usage: %s [options ...] file [ [options ...] "
484 "file ...] [options ...] file\n",GetClientName());
485 (void) printf("\nImage Settings:\n");
486 for (p=settings; *p != (char *) NULL; p++)
487 (void) printf(" %s\n",*p);
488 (void) printf("\nImage Operators:\n");
489 for (p=operators; *p != (char *) NULL; p++)
490 (void) printf(" %s\n",*p);
491 (void) printf("\nImage Channel Operators:\n");
492 for (p=channel_operators; *p != (char *) NULL; p++)
493 (void) printf(" %s\n",*p);
494 (void) printf("\nImage Sequence Operators:\n");
495 for (p=sequence_operators; *p != (char *) NULL; p++)
496 (void) printf(" %s\n",*p);
497 (void) printf("\nImage Stack Operators:\n");
498 for (p=stack_operators; *p != (char *) NULL; p++)
499 (void) printf(" %s\n",*p);
500 (void) printf("\nMiscellaneous Options:\n");
501 for (p=miscellaneous; *p != (char *) NULL; p++)
502 (void) printf(" %s\n",*p);
504 "\nBy default, the image format of 'file' is determined by its magic\n");
506 "number. To specify a particular image format, precede the filename\n");
508 "with an image format name and a colon (i.e. ps:image) or specify the\n");
510 "image type as the filename suffix (i.e. image.ps). Specify 'file' as\n");
511 (void) printf("'-' for standard input or output.\n");
515 WandExport MagickBooleanType ConvertImageCommand(ImageInfo *image_info,
516 int argc,char **argv,char **metadata,ExceptionInfo *exception)
518 #define NotInitialized (unsigned int) (~0)
519 #define DestroyConvert() \
521 DestroyImageStack(); \
522 for (i=0; i < (ssize_t) argc; i++) \
523 argv[i]=DestroyString(argv[i]); \
524 argv=(char **) RelinquishMagickMemory(argv); \
526 #define ThrowConvertException(asperity,tag,option) \
528 (void) ThrowMagickException(exception,GetMagickModule(),asperity,tag,"`%s'", \
531 return(MagickFalse); \
533 #define ThrowConvertInvalidArgumentException(option,argument) \
535 (void) ThrowMagickException(exception,GetMagickModule(),OptionError, \
536 "InvalidArgument","'%s': %s",option,argument); \
538 return(MagickFalse); \
552 image_stack[MaxImageStackDepth+1];
572 assert(image_info != (ImageInfo *) NULL);
573 assert(image_info->signature == MagickCoreSignature);
574 if (image_info->debug != MagickFalse)
575 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
576 assert(exception != (ExceptionInfo *) NULL);
580 if ((LocaleCompare("version",option+1) == 0) ||
581 (LocaleCompare("-version",option+1) == 0))
583 ListMagickVersion(stdout);
588 return(ConvertUsage());
589 filename=(char *) NULL;
594 option=(char *) NULL;
596 respect_parenthesis=MagickFalse;
599 Parse command-line arguments.
601 ReadCommandlLine(argc,&argv);
602 status=ExpandFilenames(&argc,&argv);
603 if (status == MagickFalse)
604 ThrowConvertException(ResourceLimitError,"MemoryAllocationFailed",
605 GetExceptionMessage(errno));
606 if ((argc > 2) && (LocaleCompare("-concatenate",argv[1]) == 0))
607 return(ConcatenateImages(argc,argv,exception));
608 for (i=1; i < (ssize_t) (argc-1); i++)
611 if (LocaleCompare(option,"(") == 0)
613 FireImageStack(MagickTrue,MagickTrue,pend);
614 if (k == MaxImageStackDepth)
615 ThrowConvertException(OptionError,"ParenthesisNestedTooDeeply",
620 if (LocaleCompare(option,")") == 0)
622 FireImageStack(MagickTrue,MagickTrue,MagickTrue);
624 ThrowConvertException(OptionError,"UnableToParseExpression",option);
628 if (IsCommandOption(option) == MagickFalse)
636 FireImageStack(MagickTrue,MagickTrue,pend);
638 if ((LocaleCompare(filename,"--") == 0) && (i < (ssize_t) (argc-1)))
640 if (image_info->ping != MagickFalse)
641 images=PingImages(image_info,filename,exception);
643 images=ReadImages(image_info,filename,exception);
644 status&=(images != (Image *) NULL) &&
645 (exception->severity < ErrorException);
646 if (images == (Image *) NULL)
648 AppendImageStack(images);
651 pend=image != (Image *) NULL ? MagickTrue : MagickFalse;
656 if (LocaleCompare("adaptive-blur",option+1) == 0)
659 if (i == (ssize_t) argc)
660 ThrowConvertException(OptionError,"MissingArgument",option);
661 if (IsGeometry(argv[i]) == MagickFalse)
662 ThrowConvertInvalidArgumentException(option,argv[i]);
665 if (LocaleCompare("adaptive-resize",option+1) == 0)
668 if (i == (ssize_t) argc)
669 ThrowConvertException(OptionError,"MissingArgument",option);
670 if (IsGeometry(argv[i]) == MagickFalse)
671 ThrowConvertInvalidArgumentException(option,argv[i]);
674 if (LocaleCompare("adaptive-sharpen",option+1) == 0)
677 if (i == (ssize_t) argc)
678 ThrowConvertException(OptionError,"MissingArgument",option);
679 if (IsGeometry(argv[i]) == MagickFalse)
680 ThrowConvertInvalidArgumentException(option,argv[i]);
683 if (LocaleCompare("adjoin",option+1) == 0)
685 if (LocaleCompare("affine",option+1) == 0)
690 if (i == (ssize_t) argc)
691 ThrowConvertException(OptionError,"MissingArgument",option);
692 if (IsGeometry(argv[i]) == MagickFalse)
693 ThrowConvertInvalidArgumentException(option,argv[i]);
696 if (LocaleCompare("alpha",option+1) == 0)
704 if (i == (ssize_t) argc)
705 ThrowConvertException(OptionError,"MissingArgument",option);
706 type=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,
709 ThrowConvertException(OptionError,
710 "UnrecognizedAlphaChannelOption",argv[i]);
713 if (LocaleCompare("annotate",option+1) == 0)
718 if (i == (ssize_t) argc)
719 ThrowConvertException(OptionError,"MissingArgument",option);
720 if (IsGeometry(argv[i]) == MagickFalse)
721 ThrowConvertInvalidArgumentException(option,argv[i]);
723 if (i == (ssize_t) argc)
724 ThrowConvertException(OptionError,"MissingArgument",option);
727 if (LocaleCompare("antialias",option+1) == 0)
729 if (LocaleCompare("append",option+1) == 0)
731 if (LocaleCompare("attenuate",option+1) == 0)
736 if (i == (ssize_t) argc)
737 ThrowConvertException(OptionError,"MissingArgument",option);
738 if (IsGeometry(argv[i]) == MagickFalse)
739 ThrowConvertInvalidArgumentException(option,argv[i]);
742 if (LocaleCompare("authenticate",option+1) == 0)
747 if (i == (ssize_t) argc)
748 ThrowConvertException(OptionError,"MissingArgument",option);
751 if (LocaleCompare("auto-gamma",option+1) == 0)
753 if (LocaleCompare("auto-level",option+1) == 0)
755 if (LocaleCompare("auto-orient",option+1) == 0)
757 if (LocaleCompare("auto-threshold",option+1) == 0)
765 if (i == (ssize_t) argc)
766 ThrowConvertException(OptionError,"MissingArgument",option);
767 method=ParseCommandOption(MagickAutoThresholdOptions,MagickFalse,
770 ThrowConvertException(OptionError,"UnrecognizedThresholdMethod",
774 if (LocaleCompare("average",option+1) == 0)
776 ThrowConvertException(OptionError,"UnrecognizedOption",option)
780 if (LocaleCompare("background",option+1) == 0)
785 if (i == (ssize_t) argc)
786 ThrowConvertException(OptionError,"MissingArgument",option);
789 if (LocaleCompare("bench",option+1) == 0)
794 if (i == (ssize_t) argc)
795 ThrowConvertException(OptionError,"MissingArgument",option);
796 if (IsGeometry(argv[i]) == MagickFalse)
797 ThrowConvertInvalidArgumentException(option,argv[i]);
800 if (LocaleCompare("bias",option+1) == 0)
805 if (i == (ssize_t) argc)
806 ThrowConvertException(OptionError,"MissingArgument",option);
807 if (IsGeometry(argv[i]) == MagickFalse)
808 ThrowConvertInvalidArgumentException(option,argv[i]);
811 if (LocaleCompare("black-point-compensation",option+1) == 0)
813 if (LocaleCompare("black-threshold",option+1) == 0)
818 if (i == (ssize_t) argc)
819 ThrowConvertException(OptionError,"MissingArgument",option);
820 if (IsGeometry(argv[i]) == MagickFalse)
821 ThrowConvertInvalidArgumentException(option,argv[i]);
824 if (LocaleCompare("blue-primary",option+1) == 0)
829 if (i == (ssize_t) argc)
830 ThrowConvertException(OptionError,"MissingArgument",option);
831 if (IsGeometry(argv[i]) == MagickFalse)
832 ThrowConvertInvalidArgumentException(option,argv[i]);
835 if (LocaleCompare("blue-shift",option+1) == 0)
840 if (i == (ssize_t) argc)
841 ThrowConvertException(OptionError,"MissingArgument",option);
842 if (IsGeometry(argv[i]) == MagickFalse)
843 ThrowConvertInvalidArgumentException(option,argv[i]);
846 if (LocaleCompare("blur",option+1) == 0)
851 if (i == (ssize_t) argc)
852 ThrowConvertException(OptionError,"MissingArgument",option);
853 if (IsGeometry(argv[i]) == MagickFalse)
854 ThrowConvertInvalidArgumentException(option,argv[i]);
857 if (LocaleCompare("border",option+1) == 0)
862 if (i == (ssize_t) argc)
863 ThrowConvertException(OptionError,"MissingArgument",option);
864 if (IsGeometry(argv[i]) == MagickFalse)
865 ThrowConvertInvalidArgumentException(option,argv[i]);
868 if (LocaleCompare("bordercolor",option+1) == 0)
873 if (i == (ssize_t) argc)
874 ThrowConvertException(OptionError,"MissingArgument",option);
877 if (LocaleCompare("box",option+1) == 0)
882 if (i == (ssize_t) argc)
883 ThrowConvertException(OptionError,"MissingArgument",option);
886 if (LocaleCompare("brightness-contrast",option+1) == 0)
889 if (i == (ssize_t) argc)
890 ThrowConvertException(OptionError,"MissingArgument",option);
891 if (IsGeometry(argv[i]) == MagickFalse)
892 ThrowConvertInvalidArgumentException(option,argv[i]);
895 ThrowConvertException(OptionError,"UnrecognizedOption",option)
899 if (LocaleCompare("cache",option+1) == 0)
904 if (i == (ssize_t) argc)
905 ThrowConvertException(OptionError,"MissingArgument",option);
906 if (IsGeometry(argv[i]) == MagickFalse)
907 ThrowConvertInvalidArgumentException(option,argv[i]);
910 if (LocaleCompare("canny",option+1) == 0)
915 if (i == (ssize_t) argc)
916 ThrowConvertException(OptionError,"MissingArgument",option);
917 if (IsGeometry(argv[i]) == MagickFalse)
918 ThrowConvertInvalidArgumentException(option,argv[i]);
921 if (LocaleCompare("caption",option+1) == 0)
926 if (i == (ssize_t) argc)
927 ThrowConvertException(OptionError,"MissingArgument",option);
930 if (LocaleCompare("cdl",option+1) == 0)
935 if (i == (ssize_t) argc)
936 ThrowConvertException(OptionError,"MissingArgument",option);
939 if (LocaleCompare("channel",option+1) == 0)
947 if (i == (ssize_t) argc)
948 ThrowConvertException(OptionError,"MissingArgument",option);
949 channel=ParseChannelOption(argv[i]);
951 ThrowConvertException(OptionError,"UnrecognizedChannelType",
955 if (LocaleCompare("channel-fx",option+1) == 0)
963 if (i == (ssize_t) argc)
964 ThrowConvertException(OptionError,"MissingArgument",option);
965 channel=ParsePixelChannelOption(argv[i]);
967 ThrowConvertException(OptionError,"UnrecognizedChannelType",
971 if (LocaleCompare("charcoal",option+1) == 0)
976 if (i == (ssize_t) argc)
977 ThrowConvertException(OptionError,"MissingArgument",option);
978 if (IsGeometry(argv[i]) == MagickFalse)
979 ThrowConvertInvalidArgumentException(option,argv[i]);
982 if (LocaleCompare("chop",option+1) == 0)
987 if (i == (ssize_t) argc)
988 ThrowConvertException(OptionError,"MissingArgument",option);
989 if (IsGeometry(argv[i]) == MagickFalse)
990 ThrowConvertInvalidArgumentException(option,argv[i]);
993 if (LocaleCompare("clamp",option+1) == 0)
995 if (LocaleCompare("clip",option+1) == 0)
997 if (LocaleCompare("clip-mask",option+1) == 0)
1002 if (i == (ssize_t) argc)
1003 ThrowConvertException(OptionError,"MissingArgument",option);
1006 if (LocaleCompare("clip-path",option+1) == 0)
1009 if (i == (ssize_t) argc)
1010 ThrowConvertException(OptionError,"MissingArgument",option);
1013 if (LocaleCompare("clone",option+1) == 0)
1019 clone_list=CloneImageList(image,exception);
1021 clone_list=CloneImageList(image_stack[k-1].image,exception);
1022 if (clone_list == (Image *) NULL)
1023 ThrowConvertException(ImageError,"ImageSequenceRequired",option);
1024 FireImageStack(MagickTrue,MagickTrue,MagickTrue);
1026 clone_images=CloneImages(clone_list,"-1",exception);
1030 if (i == (ssize_t) argc)
1031 ThrowConvertException(OptionError,"MissingArgument",option);
1032 if (IsSceneGeometry(argv[i],MagickFalse) == MagickFalse)
1033 ThrowConvertInvalidArgumentException(option,argv[i]);
1034 clone_images=CloneImages(clone_list,argv[i],exception);
1036 if (clone_images == (Image *) NULL)
1037 ThrowConvertException(OptionError,"NoSuchImage",option);
1038 AppendImageStack(clone_images);
1039 clone_list=DestroyImageList(clone_list);
1042 if (LocaleCompare("clut",option+1) == 0)
1044 if (LocaleCompare("coalesce",option+1) == 0)
1046 if (LocaleCompare("colorize",option+1) == 0)
1051 if (i == (ssize_t) argc)
1052 ThrowConvertException(OptionError,"MissingArgument",option);
1053 if (IsGeometry(argv[i]) == MagickFalse)
1054 ThrowConvertInvalidArgumentException(option,argv[i]);
1057 if (LocaleCompare("color-matrix",option+1) == 0)
1065 if (i == (ssize_t) argc)
1066 ThrowConvertException(OptionError,"MissingArgument",option);
1067 kernel_info=AcquireKernelInfo(argv[i],exception);
1068 if (kernel_info == (KernelInfo *) NULL)
1069 ThrowConvertInvalidArgumentException(option,argv[i]);
1070 kernel_info=DestroyKernelInfo(kernel_info);
1073 if (LocaleCompare("colors",option+1) == 0)
1078 if ((i == (ssize_t) argc) ||
1079 (IsGeometry(argv[i]) == MagickFalse))
1080 ThrowConvertException(OptionError,"MissingArgument",option);
1083 if (LocaleCompare("colorspace",option+1) == 0)
1091 if (i == (ssize_t) argc)
1092 ThrowConvertException(OptionError,"MissingArgument",option);
1093 colorspace=ParseCommandOption(MagickColorspaceOptions,
1094 MagickFalse,argv[i]);
1096 ThrowConvertException(OptionError,"UnrecognizedColorspace",
1100 if (LocaleCompare("combine",option+1) == 0)
1102 if (LocaleCompare("comment",option+1) == 0)
1107 if (i == (ssize_t) argc)
1108 ThrowConvertException(OptionError,"MissingArgument",option);
1111 if (LocaleCompare("compare",option+1) == 0)
1113 if (LocaleCompare("complex",option+1) == 0)
1121 if (i == (ssize_t) argc)
1122 ThrowConvertException(OptionError,"MissingArgument",option);
1123 op=ParseCommandOption(MagickComplexOptions,MagickFalse,argv[i]);
1125 ThrowConvertException(OptionError,"UnrecognizedComplexOperator",
1129 if (LocaleCompare("compose",option+1) == 0)
1137 if (i == (ssize_t) argc)
1138 ThrowConvertException(OptionError,"MissingArgument",option);
1139 compose=ParseCommandOption(MagickComposeOptions,MagickFalse,
1142 ThrowConvertException(OptionError,"UnrecognizedComposeOperator",
1146 if (LocaleCompare("composite",option+1) == 0)
1148 if (LocaleCompare("compress",option+1) == 0)
1156 if (i == (ssize_t) argc)
1157 ThrowConvertException(OptionError,"MissingArgument",option);
1158 compress=ParseCommandOption(MagickCompressOptions,MagickFalse,
1161 ThrowConvertException(OptionError,"UnrecognizedImageCompression",
1165 if (LocaleCompare("concurrent",option+1) == 0)
1167 if (LocaleCompare("connected-components",option+1) == 0)
1170 if (i == (ssize_t) argc)
1171 ThrowConvertException(OptionError,"MissingArgument",option);
1172 if (IsGeometry(argv[i]) == MagickFalse)
1173 ThrowConvertInvalidArgumentException(option,argv[i]);
1176 if (LocaleCompare("contrast",option+1) == 0)
1178 if (LocaleCompare("contrast-stretch",option+1) == 0)
1181 if (i == (ssize_t) argc)
1182 ThrowConvertException(OptionError,"MissingArgument",option);
1183 if (IsGeometry(argv[i]) == MagickFalse)
1184 ThrowConvertInvalidArgumentException(option,argv[i]);
1187 if (LocaleCompare("convolve",option+1) == 0)
1195 if (i == (ssize_t) argc)
1196 ThrowConvertException(OptionError,"MissingArgument",option);
1197 kernel_info=AcquireKernelInfo(argv[i],exception);
1198 if (kernel_info == (KernelInfo *) NULL)
1199 ThrowConvertInvalidArgumentException(option,argv[i]);
1200 kernel_info=DestroyKernelInfo(kernel_info);
1203 if (LocaleCompare("copy",option+1) == 0)
1208 if (i == (ssize_t) argc)
1209 ThrowConvertException(OptionError,"MissingArgument",option);
1210 if (IsGeometry(argv[i]) == MagickFalse)
1211 ThrowConvertInvalidArgumentException(option,argv[i]);
1213 if (i == (ssize_t) argc)
1214 ThrowConvertException(OptionError,"MissingArgument",option);
1215 if (IsGeometry(argv[i]) == MagickFalse)
1216 ThrowConvertInvalidArgumentException(option,argv[i]);
1219 if (LocaleCompare("crop",option+1) == 0)
1224 if (i == (ssize_t) argc)
1225 ThrowConvertException(OptionError,"MissingArgument",option);
1226 if (IsGeometry(argv[i]) == MagickFalse)
1227 ThrowConvertInvalidArgumentException(option,argv[i]);
1230 if (LocaleCompare("cycle",option+1) == 0)
1235 if (i == (ssize_t) argc)
1236 ThrowConvertException(OptionError,"MissingArgument",option);
1237 if (IsGeometry(argv[i]) == MagickFalse)
1238 ThrowConvertInvalidArgumentException(option,argv[i]);
1241 ThrowConvertException(OptionError,"UnrecognizedOption",option)
1245 if (LocaleCompare("decipher",option+1) == 0)
1250 if (i == (ssize_t) argc)
1251 ThrowConvertException(OptionError,"MissingArgument",option);
1254 if (LocaleCompare("deconstruct",option+1) == 0)
1256 if (LocaleCompare("debug",option+1) == 0)
1264 if (i == (ssize_t) argc)
1265 ThrowConvertException(OptionError,"MissingArgument",option);
1266 event=ParseCommandOption(MagickLogEventOptions,MagickFalse,argv[i]);
1268 ThrowConvertException(OptionError,"UnrecognizedEventType",
1270 (void) SetLogEventMask(argv[i]);
1273 if (LocaleCompare("define",option+1) == 0)
1276 if (i == (ssize_t) argc)
1277 ThrowConvertException(OptionError,"MissingArgument",option);
1283 define=GetImageOption(image_info,argv[i]);
1284 if (define == (const char *) NULL)
1285 ThrowConvertException(OptionError,"NoSuchOption",argv[i]);
1290 if (LocaleCompare("delay",option+1) == 0)
1295 if (i == (ssize_t) argc)
1296 ThrowConvertException(OptionError,"MissingArgument",option);
1297 if (IsGeometry(argv[i]) == MagickFalse)
1298 ThrowConvertInvalidArgumentException(option,argv[i]);
1301 if (LocaleCompare("density",option+1) == 0)
1306 if (i == (ssize_t) argc)
1307 ThrowConvertException(OptionError,"MissingArgument",option);
1308 if (IsGeometry(argv[i]) == MagickFalse)
1309 ThrowConvertInvalidArgumentException(option,argv[i]);
1312 if (LocaleCompare("depth",option+1) == 0)
1317 if (i == (ssize_t) argc)
1318 ThrowConvertException(OptionError,"MissingArgument",option);
1319 if (IsGeometry(argv[i]) == MagickFalse)
1320 ThrowConvertInvalidArgumentException(option,argv[i]);
1323 if (LocaleCompare("delete",option+1) == 0)
1328 if (i == (ssize_t) argc)
1329 ThrowConvertException(OptionError,"MissingArgument",option);
1330 if (IsSceneGeometry(argv[i],MagickFalse) == MagickFalse)
1331 ThrowConvertInvalidArgumentException(option,argv[i]);
1334 if (LocaleCompare("deskew",option+1) == 0)
1339 if (i == (ssize_t) argc)
1340 ThrowConvertException(OptionError,"MissingArgument",option);
1341 if (IsGeometry(argv[i]) == MagickFalse)
1342 ThrowConvertInvalidArgumentException(option,argv[i]);
1345 if (LocaleCompare("despeckle",option+1) == 0)
1347 if (LocaleCompare("direction",option+1) == 0)
1355 if (i == (ssize_t) argc)
1356 ThrowConvertException(OptionError,"MissingArgument",option);
1357 direction=ParseCommandOption(MagickDirectionOptions,MagickFalse,
1360 ThrowConvertException(OptionError,"UnrecognizedDirectionType",
1364 if (LocaleCompare("display",option+1) == 0)
1369 if (i == (ssize_t) argc)
1370 ThrowConvertException(OptionError,"MissingArgument",option);
1373 if (LocaleCompare("dispose",option+1) == 0)
1381 if (i == (ssize_t) argc)
1382 ThrowConvertException(OptionError,"MissingArgument",option);
1383 dispose=ParseCommandOption(MagickDisposeOptions,MagickFalse,argv[i]);
1385 ThrowConvertException(OptionError,"UnrecognizedDisposeMethod",
1389 if (LocaleCompare("distort",option+1) == 0)
1395 if (i == (ssize_t) argc)
1396 ThrowConvertException(OptionError,"MissingArgument",option);
1397 op=ParseCommandOption(MagickDistortOptions,MagickFalse,argv[i]);
1399 ThrowConvertException(OptionError,"UnrecognizedDistortMethod",
1402 if (i == (ssize_t) argc)
1403 ThrowConvertException(OptionError,"MissingArgument",option);
1406 if (LocaleCompare("dither",option+1) == 0)
1414 if (i == (ssize_t) argc)
1415 ThrowConvertException(OptionError,"MissingArgument",option);
1416 method=ParseCommandOption(MagickDitherOptions,MagickFalse,argv[i]);
1418 ThrowConvertException(OptionError,"UnrecognizedDitherMethod",
1422 if (LocaleCompare("draw",option+1) == 0)
1427 if (i == (ssize_t) argc)
1428 ThrowConvertException(OptionError,"MissingArgument",option);
1431 if (LocaleCompare("duplicate",option+1) == 0)
1436 if (i == (ssize_t) argc)
1437 ThrowConvertException(OptionError,"MissingArgument",option);
1438 if (IsGeometry(argv[i]) == MagickFalse)
1439 ThrowConvertInvalidArgumentException(option,argv[i]);
1442 if (LocaleCompare("duration",option+1) == 0)
1447 if (i == (ssize_t) argc)
1448 ThrowConvertException(OptionError,"MissingArgument",option);
1449 if (IsGeometry(argv[i]) == MagickFalse)
1450 ThrowConvertInvalidArgumentException(option,argv[i]);
1453 ThrowConvertException(OptionError,"UnrecognizedOption",option)
1457 if (LocaleCompare("edge",option+1) == 0)
1462 if (i == (ssize_t) argc)
1463 ThrowConvertException(OptionError,"MissingArgument",option);
1464 if (IsGeometry(argv[i]) == MagickFalse)
1465 ThrowConvertInvalidArgumentException(option,argv[i]);
1468 if (LocaleCompare("emboss",option+1) == 0)
1473 if (i == (ssize_t) argc)
1474 ThrowConvertException(OptionError,"MissingArgument",option);
1475 if (IsGeometry(argv[i]) == MagickFalse)
1476 ThrowConvertInvalidArgumentException(option,argv[i]);
1479 if (LocaleCompare("encipher",option+1) == 0)
1484 if (i == (ssize_t) argc)
1485 ThrowConvertException(OptionError,"MissingArgument",option);
1488 if (LocaleCompare("encoding",option+1) == 0)
1493 if (i == (ssize_t) argc)
1494 ThrowConvertException(OptionError,"MissingArgument",option);
1497 if (LocaleCompare("endian",option+1) == 0)
1505 if (i == (ssize_t) argc)
1506 ThrowConvertException(OptionError,"MissingArgument",option);
1507 endian=ParseCommandOption(MagickEndianOptions,MagickFalse,
1510 ThrowConvertException(OptionError,"UnrecognizedEndianType",
1514 if (LocaleCompare("enhance",option+1) == 0)
1516 if (LocaleCompare("equalize",option+1) == 0)
1518 if (LocaleCompare("evaluate",option+1) == 0)
1526 if (i == (ssize_t) argc)
1527 ThrowConvertException(OptionError,"MissingArgument",option);
1528 op=ParseCommandOption(MagickEvaluateOptions,MagickFalse,argv[i]);
1530 ThrowConvertException(OptionError,"UnrecognizedEvaluateOperator",
1533 if (i == (ssize_t) argc)
1534 ThrowConvertException(OptionError,"MissingArgument",option);
1535 if (IsGeometry(argv[i]) == MagickFalse)
1536 ThrowConvertInvalidArgumentException(option,argv[i]);
1539 if (LocaleCompare("evaluate-sequence",option+1) == 0)
1547 if (i == (ssize_t) argc)
1548 ThrowConvertException(OptionError,"MissingArgument",option);
1549 op=ParseCommandOption(MagickEvaluateOptions,MagickFalse,argv[i]);
1551 ThrowConvertException(OptionError,"UnrecognizedEvaluateOperator",
1555 if (LocaleCompare("extent",option+1) == 0)
1560 if (i == (ssize_t) argc)
1561 ThrowConvertException(OptionError,"MissingArgument",option);
1562 if (IsGeometry(argv[i]) == MagickFalse)
1563 ThrowConvertInvalidArgumentException(option,argv[i]);
1566 if (LocaleCompare("extract",option+1) == 0)
1571 if (i == (ssize_t) argc)
1572 ThrowConvertException(OptionError,"MissingArgument",option);
1573 if (IsGeometry(argv[i]) == MagickFalse)
1574 ThrowConvertInvalidArgumentException(option,argv[i]);
1577 ThrowConvertException(OptionError,"UnrecognizedOption",option)
1581 if (LocaleCompare("family",option+1) == 0)
1586 if (i == (ssize_t) argc)
1587 ThrowConvertException(OptionError,"MissingArgument",option);
1590 if (LocaleCompare("features",option+1) == 0)
1595 if (i == (ssize_t) argc)
1596 ThrowConvertException(OptionError,"MissingArgument",option);
1597 if (IsGeometry(argv[i]) == MagickFalse)
1598 ThrowConvertInvalidArgumentException(option,argv[i]);
1601 if (LocaleCompare("fft",option+1) == 0)
1603 if (LocaleCompare("fill",option+1) == 0)
1608 if (i == (ssize_t) argc)
1609 ThrowConvertException(OptionError,"MissingArgument",option);
1612 if (LocaleCompare("filter",option+1) == 0)
1620 if (i == (ssize_t) argc)
1621 ThrowConvertException(OptionError,"MissingArgument",option);
1622 filter=ParseCommandOption(MagickFilterOptions,MagickFalse,argv[i]);
1624 ThrowConvertException(OptionError,"UnrecognizedImageFilter",
1628 if (LocaleCompare("flatten",option+1) == 0)
1630 if (LocaleCompare("flip",option+1) == 0)
1632 if (LocaleCompare("flop",option+1) == 0)
1634 if (LocaleCompare("floodfill",option+1) == 0)
1639 if (i == (ssize_t) argc)
1640 ThrowConvertException(OptionError,"MissingArgument",option);
1641 if (IsGeometry(argv[i]) == MagickFalse)
1642 ThrowConvertInvalidArgumentException(option,argv[i]);
1644 if (i == (ssize_t) argc)
1645 ThrowConvertException(OptionError,"MissingArgument",option);
1648 if (LocaleCompare("font",option+1) == 0)
1653 if (i == (ssize_t) argc)
1654 ThrowConvertException(OptionError,"MissingArgument",option);
1657 if (LocaleCompare("format",option+1) == 0)
1662 if (i == (ssize_t) argc)
1663 ThrowConvertException(OptionError,"MissingArgument",option);
1667 if (LocaleCompare("frame",option+1) == 0)
1672 if (i == (ssize_t) argc)
1673 ThrowConvertException(OptionError,"MissingArgument",option);
1674 if (IsGeometry(argv[i]) == MagickFalse)
1675 ThrowConvertInvalidArgumentException(option,argv[i]);
1678 if (LocaleCompare("function",option+1) == 0)
1686 if (i == (ssize_t) argc)
1687 ThrowConvertException(OptionError,"MissingArgument",option);
1688 op=ParseCommandOption(MagickFunctionOptions,MagickFalse,argv[i]);
1690 ThrowConvertException(OptionError,"UnrecognizedFunction",argv[i]);
1692 if (i == (ssize_t) argc)
1693 ThrowConvertException(OptionError,"MissingArgument",option);
1696 if (LocaleCompare("fuzz",option+1) == 0)
1701 if (i == (ssize_t) argc)
1702 ThrowConvertException(OptionError,"MissingArgument",option);
1703 if (IsGeometry(argv[i]) == MagickFalse)
1704 ThrowConvertInvalidArgumentException(option,argv[i]);
1707 if (LocaleCompare("fx",option+1) == 0)
1712 if (i == (ssize_t) argc)
1713 ThrowConvertException(OptionError,"MissingArgument",option);
1716 ThrowConvertException(OptionError,"UnrecognizedOption",option)
1720 if (LocaleCompare("gamma",option+1) == 0)
1723 if (i == (ssize_t) argc)
1724 ThrowConvertException(OptionError,"MissingArgument",option);
1725 if (IsGeometry(argv[i]) == MagickFalse)
1726 ThrowConvertInvalidArgumentException(option,argv[i]);
1729 if ((LocaleCompare("gaussian-blur",option+1) == 0) ||
1730 (LocaleCompare("gaussian",option+1) == 0))
1733 if (i == (ssize_t) argc)
1734 ThrowConvertException(OptionError,"MissingArgument",option);
1735 if (IsGeometry(argv[i]) == MagickFalse)
1736 ThrowConvertInvalidArgumentException(option,argv[i]);
1739 if (LocaleCompare("geometry",option+1) == 0)
1744 if (i == (ssize_t) argc)
1745 ThrowConvertException(OptionError,"MissingArgument",option);
1746 if (IsGeometry(argv[i]) == MagickFalse)
1747 ThrowConvertInvalidArgumentException(option,argv[i]);
1750 if (LocaleCompare("gravity",option+1) == 0)
1758 if (i == (ssize_t) argc)
1759 ThrowConvertException(OptionError,"MissingArgument",option);
1760 gravity=ParseCommandOption(MagickGravityOptions,MagickFalse,
1763 ThrowConvertException(OptionError,"UnrecognizedGravityType",
1767 if (LocaleCompare("grayscale",option+1) == 0)
1775 if (i == (ssize_t) argc)
1776 ThrowConvertException(OptionError,"MissingArgument",option);
1777 method=ParseCommandOption(MagickPixelIntensityOptions,MagickFalse,
1780 ThrowConvertException(OptionError,"UnrecognizedIntensityMethod",
1784 if (LocaleCompare("green-primary",option+1) == 0)
1789 if (i == (ssize_t) argc)
1790 ThrowConvertException(OptionError,"MissingArgument",option);
1791 if (IsGeometry(argv[i]) == MagickFalse)
1792 ThrowConvertInvalidArgumentException(option,argv[i]);
1795 ThrowConvertException(OptionError,"UnrecognizedOption",option)
1799 if (LocaleCompare("hald-clut",option+1) == 0)
1801 if ((LocaleCompare("help",option+1) == 0) ||
1802 (LocaleCompare("-help",option+1) == 0))
1803 return(ConvertUsage());
1804 if (LocaleCompare("hough-lines",option+1) == 0)
1809 if (i == (ssize_t) argc)
1810 ThrowConvertException(OptionError,"MissingArgument",option);
1811 if (IsGeometry(argv[i]) == MagickFalse)
1812 ThrowConvertInvalidArgumentException(option,argv[i]);
1815 ThrowConvertException(OptionError,"UnrecognizedOption",option)
1819 if (LocaleCompare("identify",option+1) == 0)
1821 if (LocaleCompare("ift",option+1) == 0)
1823 if (LocaleCompare("implode",option+1) == 0)
1828 if (i == (ssize_t) argc)
1829 ThrowConvertException(OptionError,"MissingArgument",option);
1830 if (IsGeometry(argv[i]) == MagickFalse)
1831 ThrowConvertInvalidArgumentException(option,argv[i]);
1834 if (LocaleCompare("insert",option+1) == 0)
1839 if (i == (ssize_t) argc)
1840 ThrowConvertException(OptionError,"MissingArgument",option);
1841 if (IsGeometry(argv[i]) == MagickFalse)
1842 ThrowConvertInvalidArgumentException(option,argv[i]);
1845 if (LocaleCompare("intensity",option+1) == 0)
1853 if (i == (ssize_t) argc)
1854 ThrowConvertException(OptionError,"MissingArgument",option);
1855 intensity=ParseCommandOption(MagickPixelIntensityOptions,
1856 MagickFalse,argv[i]);
1858 ThrowConvertException(OptionError,"UnrecognizedIntensityMethod",
1862 if (LocaleCompare("intent",option+1) == 0)
1870 if (i == (ssize_t) argc)
1871 ThrowConvertException(OptionError,"MissingArgument",option);
1872 intent=ParseCommandOption(MagickIntentOptions,MagickFalse,argv[i]);
1874 ThrowConvertException(OptionError,"UnrecognizedIntentType",argv[i]);
1877 if (LocaleCompare("interlace",option+1) == 0)
1885 if (i == (ssize_t) argc)
1886 ThrowConvertException(OptionError,"MissingArgument",option);
1887 interlace=ParseCommandOption(MagickInterlaceOptions,MagickFalse,
1890 ThrowConvertException(OptionError,"UnrecognizedInterlaceType",
1894 if (LocaleCompare("interline-spacing",option+1) == 0)
1899 if (i == (ssize_t) argc)
1900 ThrowConvertException(OptionError,"MissingArgument",option);
1901 if (IsGeometry(argv[i]) == MagickFalse)
1902 ThrowConvertInvalidArgumentException(option,argv[i]);
1905 if (LocaleCompare("interpolate",option+1) == 0)
1913 if (i == (ssize_t) argc)
1914 ThrowConvertException(OptionError,"MissingArgument",option);
1915 interpolate=ParseCommandOption(MagickInterpolateOptions,MagickFalse,
1917 if (interpolate < 0)
1918 ThrowConvertException(OptionError,"UnrecognizedInterpolateMethod",
1922 if (LocaleCompare("interword-spacing",option+1) == 0)
1927 if (i == (ssize_t) argc)
1928 ThrowConvertException(OptionError,"MissingArgument",option);
1929 if (IsGeometry(argv[i]) == MagickFalse)
1930 ThrowConvertInvalidArgumentException(option,argv[i]);
1933 ThrowConvertException(OptionError,"UnrecognizedOption",option)
1937 if (LocaleCompare("kerning",option+1) == 0)
1942 if (i == (ssize_t) argc)
1943 ThrowConvertException(OptionError,"MissingArgument",option);
1944 if (IsGeometry(argv[i]) == MagickFalse)
1945 ThrowConvertInvalidArgumentException(option,argv[i]);
1948 if (LocaleCompare("kuwahara",option+1) == 0)
1953 if (i == (ssize_t) argc)
1954 ThrowConvertException(OptionError,"MissingArgument",option);
1955 if (IsGeometry(argv[i]) == MagickFalse)
1956 ThrowConvertInvalidArgumentException(option,argv[i]);
1959 ThrowConvertException(OptionError,"UnrecognizedOption",option)
1963 if (LocaleCompare("label",option+1) == 0)
1968 if (i == (ssize_t) argc)
1969 ThrowConvertException(OptionError,"MissingArgument",option);
1972 if (LocaleCompare("lat",option+1) == 0)
1977 if (i == (ssize_t) argc)
1978 ThrowConvertException(OptionError,"MissingArgument",option);
1979 if (IsGeometry(argv[i]) == MagickFalse)
1980 ThrowConvertInvalidArgumentException(option,argv[i]);
1983 if (LocaleCompare("layers",option+1) == 0)
1991 if (i == (ssize_t) argc)
1992 ThrowConvertException(OptionError,"MissingArgument",option);
1993 type=ParseCommandOption(MagickLayerOptions,MagickFalse,argv[i]);
1995 ThrowConvertException(OptionError,"UnrecognizedLayerMethod",
1999 if (LocaleCompare("level",option+1) == 0)
2002 if (i == (ssize_t) argc)
2003 ThrowConvertException(OptionError,"MissingArgument",option);
2004 if (IsGeometry(argv[i]) == MagickFalse)
2005 ThrowConvertInvalidArgumentException(option,argv[i]);
2008 if (LocaleCompare("level-colors",option+1) == 0)
2011 if (i == (ssize_t) argc)
2012 ThrowConvertException(OptionError,"MissingArgument",option);
2015 if (LocaleCompare("limit",option+1) == 0)
2029 if (i == (ssize_t) argc)
2030 ThrowConvertException(OptionError,"MissingArgument",option);
2031 resource=ParseCommandOption(MagickResourceOptions,MagickFalse,
2034 ThrowConvertException(OptionError,"UnrecognizedResourceType",
2037 if (i == (ssize_t) argc)
2038 ThrowConvertException(OptionError,"MissingArgument",option);
2039 value=StringToDouble(argv[i],&p);
2041 if ((p == argv[i]) && (LocaleCompare("unlimited",argv[i]) != 0))
2042 ThrowConvertInvalidArgumentException(option,argv[i]);
2045 if (LocaleCompare("linear-stretch",option+1) == 0)
2048 if (i == (ssize_t) argc)
2049 ThrowConvertException(OptionError,"MissingArgument",option);
2050 if (IsGeometry(argv[i]) == MagickFalse)
2051 ThrowConvertInvalidArgumentException(option,argv[i]);
2054 if (LocaleCompare("liquid-rescale",option+1) == 0)
2057 if (i == (ssize_t) argc)
2058 ThrowConvertException(OptionError,"MissingArgument",option);
2059 if (IsGeometry(argv[i]) == MagickFalse)
2060 ThrowConvertInvalidArgumentException(option,argv[i]);
2063 if (LocaleCompare("list",option+1) == 0)
2071 if (i == (ssize_t) argc)
2072 ThrowConvertException(OptionError,"MissingArgument",option);
2073 list=ParseCommandOption(MagickListOptions,MagickFalse,argv[i]);
2075 ThrowConvertException(OptionError,"UnrecognizedListType",argv[i]);
2076 status=MogrifyImageInfo(image_info,(int) (i-j+1),(const char **)
2079 return(status == 0 ? MagickTrue : MagickFalse);
2081 if (LocaleCompare("local-contrast",option+1) == 0)
2084 if (i == (ssize_t)argc)
2085 ThrowConvertException(OptionError, "MissingArgument", option);
2086 if (IsGeometry(argv[i]) == MagickFalse)
2087 ThrowConvertInvalidArgumentException(option,argv[i]);
2090 if (LocaleCompare("log",option+1) == 0)
2095 if ((i == (ssize_t) argc) ||
2096 (strchr(argv[i],'%') == (char *) NULL))
2097 ThrowConvertException(OptionError,"MissingArgument",option);
2100 if (LocaleCompare("loop",option+1) == 0)
2105 if (i == (ssize_t) argc)
2106 ThrowConvertException(OptionError,"MissingArgument",option);
2107 if (IsGeometry(argv[i]) == MagickFalse)
2108 ThrowConvertInvalidArgumentException(option,argv[i]);
2111 ThrowConvertException(OptionError,"UnrecognizedOption",option)
2115 if (LocaleCompare("magnify",option+1) == 0)
2117 if (LocaleCompare("map",option+1) == 0)
2122 if (i == (ssize_t) argc)
2123 ThrowConvertException(OptionError,"MissingArgument",option);
2126 if (LocaleCompare("mask",option+1) == 0)
2131 if (i == (ssize_t) argc)
2132 ThrowConvertException(OptionError,"MissingArgument",option);
2135 if (LocaleCompare("matte",option+1) == 0)
2137 if (LocaleCompare("mattecolor",option+1) == 0)
2142 if (i == (ssize_t)argc)
2143 ThrowConvertException(OptionError, "MissingArgument", option);
2146 if (LocaleCompare("maximum",option+1) == 0)
2148 if (LocaleCompare("mean-shift",option+1) == 0)
2153 if (i == (ssize_t) argc)
2154 ThrowConvertException(OptionError,"MissingArgument",option);
2155 if (IsGeometry(argv[i]) == MagickFalse)
2156 ThrowConvertInvalidArgumentException(option,argv[i]);
2159 if (LocaleCompare("median",option+1) == 0)
2164 if (i == (ssize_t) argc)
2165 ThrowConvertException(OptionError,"MissingArgument",option);
2166 if (IsGeometry(argv[i]) == MagickFalse)
2167 ThrowConvertInvalidArgumentException(option,argv[i]);
2170 if (LocaleCompare("metric",option+1) == 0)
2178 if (i == (ssize_t) argc)
2179 ThrowConvertException(OptionError,"MissingArgument",option);
2180 type=ParseCommandOption(MagickMetricOptions,MagickTrue,argv[i]);
2182 ThrowConvertException(OptionError,"UnrecognizedMetricType",
2186 if (LocaleCompare("minimum",option+1) == 0)
2188 if (LocaleCompare("mode",option+1) == 0)
2193 if (i == (ssize_t) argc)
2194 ThrowConvertException(OptionError,"MissingArgument",option);
2195 if (IsGeometry(argv[i]) == MagickFalse)
2196 ThrowConvertInvalidArgumentException(option,argv[i]);
2199 if (LocaleCompare("modulate",option+1) == 0)
2204 if (i == (ssize_t) argc)
2205 ThrowConvertException(OptionError,"MissingArgument",option);
2206 if (IsGeometry(argv[i]) == MagickFalse)
2207 ThrowConvertInvalidArgumentException(option,argv[i]);
2210 if (LocaleCompare("moments",option+1) == 0)
2212 if (LocaleCompare("monitor",option+1) == 0)
2214 if (LocaleCompare("monochrome",option+1) == 0)
2216 if (LocaleCompare("morph",option+1) == 0)
2221 if (i == (ssize_t) argc)
2222 ThrowConvertException(OptionError,"MissingArgument",option);
2223 if (IsGeometry(argv[i]) == MagickFalse)
2224 ThrowConvertInvalidArgumentException(option,argv[i]);
2227 if (LocaleCompare("morphology",option+1) == 0)
2230 token[MagickPathExtent];
2239 if (i == (ssize_t) argc)
2240 ThrowConvertException(OptionError,"MissingArgument",option);
2241 GetNextToken(argv[i],(const char **) NULL,MagickPathExtent,token);
2242 op=ParseCommandOption(MagickMorphologyOptions,MagickFalse,token);
2244 ThrowConvertException(OptionError,"UnrecognizedMorphologyMethod",
2247 if (i == (ssize_t) argc)
2248 ThrowConvertException(OptionError,"MissingArgument",option);
2249 kernel_info=AcquireKernelInfo(argv[i],exception);
2250 if (kernel_info == (KernelInfo *) NULL)
2251 ThrowConvertInvalidArgumentException(option,argv[i]);
2252 kernel_info=DestroyKernelInfo(kernel_info);
2255 if (LocaleCompare("mosaic",option+1) == 0)
2257 if (LocaleCompare("motion-blur",option+1) == 0)
2262 if (i == (ssize_t) argc)
2263 ThrowConvertException(OptionError,"MissingArgument",option);
2264 if (IsGeometry(argv[i]) == MagickFalse)
2265 ThrowConvertInvalidArgumentException(option,argv[i]);
2268 ThrowConvertException(OptionError,"UnrecognizedOption",option)
2272 if (LocaleCompare("negate",option+1) == 0)
2274 if (LocaleCompare("noise",option+1) == 0)
2277 if (i == (ssize_t) argc)
2278 ThrowConvertException(OptionError,"MissingArgument",option);
2284 noise=ParseCommandOption(MagickNoiseOptions,MagickFalse,
2287 ThrowConvertException(OptionError,"UnrecognizedNoiseType",
2291 if (IsGeometry(argv[i]) == MagickFalse)
2292 ThrowConvertInvalidArgumentException(option,argv[i]);
2295 if (LocaleCompare("noop",option+1) == 0)
2297 if (LocaleCompare("normalize",option+1) == 0)
2299 ThrowConvertException(OptionError,"UnrecognizedOption",option)
2303 if (LocaleCompare("opaque",option+1) == 0)
2306 if (i == (ssize_t) argc)
2307 ThrowConvertException(OptionError,"MissingArgument",option);
2310 if (LocaleCompare("ordered-dither",option+1) == 0)
2315 if (i == (ssize_t) argc)
2316 ThrowConvertException(OptionError,"MissingArgument",option);
2319 if (LocaleCompare("orient",option+1) == 0)
2327 if (i == (ssize_t) argc)
2328 ThrowConvertException(OptionError,"MissingArgument",option);
2329 orientation=ParseCommandOption(MagickOrientationOptions,
2330 MagickFalse,argv[i]);
2331 if (orientation < 0)
2332 ThrowConvertException(OptionError,"UnrecognizedImageOrientation",
2336 ThrowConvertException(OptionError,"UnrecognizedOption",argv[i])
2340 if (LocaleCompare("page",option+1) == 0)
2345 if (i == (ssize_t) argc)
2346 ThrowConvertException(OptionError,"MissingArgument",option);
2349 if (LocaleCompare("paint",option+1) == 0)
2354 if (i == (ssize_t) argc)
2355 ThrowConvertException(OptionError,"MissingArgument",option);
2356 if (IsGeometry(argv[i]) == MagickFalse)
2357 ThrowConvertInvalidArgumentException(option,argv[i]);
2360 if (LocaleCompare("perceptible",option+1) == 0)
2365 if (i == (ssize_t) argc)
2366 ThrowConvertException(OptionError,"MissingArgument",option);
2367 if (IsGeometry(argv[i]) == MagickFalse)
2368 ThrowConvertInvalidArgumentException(option,argv[i]);
2371 if (LocaleCompare("ping",option+1) == 0)
2373 if (LocaleCompare("pointsize",option+1) == 0)
2378 if (i == (ssize_t) argc)
2379 ThrowConvertException(OptionError,"MissingArgument",option);
2380 if (IsGeometry(argv[i]) == MagickFalse)
2381 ThrowConvertInvalidArgumentException(option,argv[i]);
2384 if (LocaleCompare("polaroid",option+1) == 0)
2389 if (i == (ssize_t) argc)
2390 ThrowConvertException(OptionError,"MissingArgument",option);
2391 if (IsGeometry(argv[i]) == MagickFalse)
2392 ThrowConvertInvalidArgumentException(option,argv[i]);
2395 if (LocaleCompare("poly",option+1) == 0)
2400 if (i == (ssize_t) argc)
2401 ThrowConvertException(OptionError,"MissingArgument",option);
2402 if (IsGeometry(argv[i]) == MagickFalse)
2403 ThrowConvertInvalidArgumentException(option,argv[i]);
2406 if (LocaleCompare("posterize",option+1) == 0)
2411 if (i == (ssize_t) argc)
2412 ThrowConvertException(OptionError,"MissingArgument",option);
2413 if (IsGeometry(argv[i]) == MagickFalse)
2414 ThrowConvertInvalidArgumentException(option,argv[i]);
2417 if (LocaleCompare("precision",option+1) == 0)
2422 if (i == (ssize_t) argc)
2423 ThrowConvertException(OptionError,"MissingArgument",option);
2424 if (IsGeometry(argv[i]) == MagickFalse)
2425 ThrowConvertInvalidArgumentException(option,argv[i]);
2428 if (LocaleCompare("preview",option+1) == 0)
2436 if (i == (ssize_t) argc)
2437 ThrowConvertException(OptionError,"MissingArgument",option);
2438 preview=ParseCommandOption(MagickPreviewOptions,MagickFalse,
2441 ThrowConvertException(OptionError,"UnrecognizedPreviewType",
2445 if (LocaleCompare("print",option+1) == 0)
2450 if (i == (ssize_t) argc)
2451 ThrowConvertException(OptionError,"MissingArgument",option);
2454 if (LocaleCompare("process",option+1) == 0)
2459 if (i == (ssize_t) argc)
2460 ThrowConvertException(OptionError,"MissingArgument",option);
2463 if (LocaleCompare("profile",option+1) == 0)
2466 if (i == (ssize_t) argc)
2467 ThrowConvertException(OptionError,"MissingArgument",option);
2470 ThrowConvertException(OptionError,"UnrecognizedOption",option)
2474 if (LocaleCompare("quality",option+1) == 0)
2479 if (i == (ssize_t) argc)
2480 ThrowConvertException(OptionError,"MissingArgument",option);
2481 if (IsGeometry(argv[i]) == MagickFalse)
2482 ThrowConvertInvalidArgumentException(option,argv[i]);
2485 if (LocaleCompare("quantize",option+1) == 0)
2493 if (i == (ssize_t) argc)
2494 ThrowConvertException(OptionError,"MissingArgument",option);
2495 colorspace=ParseCommandOption(MagickColorspaceOptions,
2496 MagickFalse,argv[i]);
2498 ThrowConvertException(OptionError,"UnrecognizedColorspace",
2502 if (LocaleCompare("quiet",option+1) == 0)
2504 ThrowConvertException(OptionError,"UnrecognizedOption",option)
2508 if (LocaleCompare("rotational-blur",option+1) == 0)
2511 if (i == (ssize_t) argc)
2512 ThrowConvertException(OptionError,"MissingArgument",option);
2513 if (IsGeometry(argv[i]) == MagickFalse)
2514 ThrowConvertInvalidArgumentException(option,argv[i]);
2517 if (LocaleCompare("raise",option+1) == 0)
2520 if (i == (ssize_t) argc)
2521 ThrowConvertException(OptionError,"MissingArgument",option);
2522 if (IsGeometry(argv[i]) == MagickFalse)
2523 ThrowConvertInvalidArgumentException(option,argv[i]);
2526 if (LocaleCompare("random-threshold",option+1) == 0)
2531 if (i == (ssize_t) argc)
2532 ThrowConvertException(OptionError,"MissingArgument",option);
2533 if (IsGeometry(argv[i]) == MagickFalse)
2534 ThrowConvertInvalidArgumentException(option,argv[i]);
2537 if (LocaleCompare("range-threshold",option+1) == 0)
2542 if (i == (ssize_t) argc)
2543 ThrowConvertException(OptionError,"MissingArgument",option);
2544 if (IsGeometry(argv[i]) == MagickFalse)
2545 ThrowConvertInvalidArgumentException(option,argv[i]);
2548 if (LocaleCompare("read-mask",option+1) == 0)
2553 if (i == (ssize_t) argc)
2554 ThrowConvertException(OptionError,"MissingArgument",option);
2557 if (LocaleCompare("red-primary",option+1) == 0)
2562 if (i == (ssize_t) argc)
2563 ThrowConvertException(OptionError,"MissingArgument",option);
2564 if (IsGeometry(argv[i]) == MagickFalse)
2565 ThrowConvertInvalidArgumentException(option,argv[i]);
2568 if (LocaleCompare("regard-warnings",option+1) == 0)
2570 if (LocaleCompare("region",option+1) == 0)
2575 if (i == (ssize_t) argc)
2576 ThrowConvertException(OptionError,"MissingArgument",option);
2577 if (IsGeometry(argv[i]) == MagickFalse)
2578 ThrowConvertInvalidArgumentException(option,argv[i]);
2581 if (LocaleCompare("remap",option+1) == 0)
2586 if (i == (ssize_t) argc)
2587 ThrowConvertException(OptionError,"MissingArgument",option);
2590 if (LocaleCompare("render",option+1) == 0)
2592 if (LocaleCompare("repage",option+1) == 0)
2597 if (i == (ssize_t) argc)
2598 ThrowConvertException(OptionError,"MissingArgument",option);
2599 if (IsGeometry(argv[i]) == MagickFalse)
2600 ThrowConvertInvalidArgumentException(option,argv[i]);
2603 if (LocaleCompare("resample",option+1) == 0)
2608 if (i == (ssize_t) argc)
2609 ThrowConvertException(OptionError,"MissingArgument",option);
2610 if (IsGeometry(argv[i]) == MagickFalse)
2611 ThrowConvertInvalidArgumentException(option,argv[i]);
2614 if (LocaleCompare("resize",option+1) == 0)
2619 if (i == (ssize_t) argc)
2620 ThrowConvertException(OptionError,"MissingArgument",option);
2621 if (IsGeometry(argv[i]) == MagickFalse)
2622 ThrowConvertInvalidArgumentException(option,argv[i]);
2625 if (LocaleNCompare("respect-parentheses",option+1,17) == 0)
2627 respect_parenthesis=(*option == '-') ? MagickTrue : MagickFalse;
2630 if (LocaleCompare("reverse",option+1) == 0)
2632 if (LocaleCompare("roll",option+1) == 0)
2637 if (i == (ssize_t) argc)
2638 ThrowConvertException(OptionError,"MissingArgument",option);
2639 if (IsGeometry(argv[i]) == MagickFalse)
2640 ThrowConvertInvalidArgumentException(option,argv[i]);
2643 if (LocaleCompare("rotate",option+1) == 0)
2646 if (i == (ssize_t) argc)
2647 ThrowConvertException(OptionError,"MissingArgument",option);
2648 if (IsGeometry(argv[i]) == MagickFalse)
2649 ThrowConvertInvalidArgumentException(option,argv[i]);
2652 ThrowConvertException(OptionError,"UnrecognizedOption",option)
2656 if (LocaleCompare("sample",option+1) == 0)
2661 if (i == (ssize_t) argc)
2662 ThrowConvertException(OptionError,"MissingArgument",option);
2663 if (IsGeometry(argv[i]) == MagickFalse)
2664 ThrowConvertInvalidArgumentException(option,argv[i]);
2667 if (LocaleCompare("sampling-factor",option+1) == 0)
2672 if (i == (ssize_t) argc)
2673 ThrowConvertException(OptionError,"MissingArgument",option);
2674 if (IsGeometry(argv[i]) == MagickFalse)
2675 ThrowConvertInvalidArgumentException(option,argv[i]);
2678 if (LocaleCompare("scale",option+1) == 0)
2683 if (i == (ssize_t) argc)
2684 ThrowConvertException(OptionError,"MissingArgument",option);
2685 if (IsGeometry(argv[i]) == MagickFalse)
2686 ThrowConvertInvalidArgumentException(option,argv[i]);
2689 if (LocaleCompare("scene",option+1) == 0)
2694 if (i == (ssize_t) argc)
2695 ThrowConvertException(OptionError,"MissingArgument",option);
2696 if (IsGeometry(argv[i]) == MagickFalse)
2697 ThrowConvertInvalidArgumentException(option,argv[i]);
2700 if (LocaleCompare("seed",option+1) == 0)
2705 if (i == (ssize_t) argc)
2706 ThrowConvertException(OptionError,"MissingArgument",option);
2707 if (IsGeometry(argv[i]) == MagickFalse)
2708 ThrowConvertInvalidArgumentException(option,argv[i]);
2711 if (LocaleCompare("segment",option+1) == 0)
2716 if (i == (ssize_t) argc)
2717 ThrowConvertException(OptionError,"MissingArgument",option);
2718 if (IsGeometry(argv[i]) == MagickFalse)
2719 ThrowConvertInvalidArgumentException(option,argv[i]);
2722 if (LocaleCompare("selective-blur",option+1) == 0)
2725 if (i == (ssize_t) argc)
2726 ThrowConvertException(OptionError,"MissingArgument",option);
2727 if (IsGeometry(argv[i]) == MagickFalse)
2728 ThrowConvertInvalidArgumentException(option,argv[i]);
2731 if (LocaleCompare("separate",option+1) == 0)
2733 if (LocaleCompare("sepia-tone",option+1) == 0)
2738 if (i == (ssize_t) argc)
2739 ThrowConvertException(OptionError,"MissingArgument",option);
2740 if (IsGeometry(argv[i]) == MagickFalse)
2741 ThrowConvertInvalidArgumentException(option,argv[i]);
2744 if (LocaleCompare("set",option+1) == 0)
2747 if (i == (ssize_t) argc)
2748 ThrowConvertException(OptionError,"MissingArgument",option);
2752 if (i == (ssize_t) argc)
2753 ThrowConvertException(OptionError,"MissingArgument",option);
2756 if (LocaleCompare("shade",option+1) == 0)
2759 if (i == (ssize_t) argc)
2760 ThrowConvertException(OptionError,"MissingArgument",option);
2761 if (IsGeometry(argv[i]) == MagickFalse)
2762 ThrowConvertInvalidArgumentException(option,argv[i]);
2765 if (LocaleCompare("shadow",option+1) == 0)
2770 if (i == (ssize_t) argc)
2771 ThrowConvertException(OptionError,"MissingArgument",option);
2772 if (IsGeometry(argv[i]) == MagickFalse)
2773 ThrowConvertInvalidArgumentException(option,argv[i]);
2776 if (LocaleCompare("sharpen",option+1) == 0)
2779 if (i == (ssize_t) argc)
2780 ThrowConvertException(OptionError,"MissingArgument",option);
2781 if (IsGeometry(argv[i]) == MagickFalse)
2782 ThrowConvertInvalidArgumentException(option,argv[i]);
2785 if (LocaleCompare("shave",option+1) == 0)
2790 if (i == (ssize_t) argc)
2791 ThrowConvertException(OptionError,"MissingArgument",option);
2792 if (IsGeometry(argv[i]) == MagickFalse)
2793 ThrowConvertInvalidArgumentException(option,argv[i]);
2796 if (LocaleCompare("shear",option+1) == 0)
2799 if (i == (ssize_t) argc)
2800 ThrowConvertException(OptionError,"MissingArgument",option);
2801 if (IsGeometry(argv[i]) == MagickFalse)
2802 ThrowConvertInvalidArgumentException(option,argv[i]);
2805 if (LocaleCompare("sigmoidal-contrast",option+1) == 0)
2808 if (i == (ssize_t) argc)
2809 ThrowConvertException(OptionError,"MissingArgument",option);
2810 if (IsGeometry(argv[i]) == MagickFalse)
2811 ThrowConvertInvalidArgumentException(option,argv[i]);
2814 if (LocaleCompare("size",option+1) == 0)
2819 if (i == (ssize_t) argc)
2820 ThrowConvertException(OptionError,"MissingArgument",option);
2821 if (IsGeometry(argv[i]) == MagickFalse)
2822 ThrowConvertInvalidArgumentException(option,argv[i]);
2825 if (LocaleCompare("sketch",option+1) == 0)
2830 if (i == (ssize_t) argc)
2831 ThrowConvertException(OptionError,"MissingArgument",option);
2832 if (IsGeometry(argv[i]) == MagickFalse)
2833 ThrowConvertInvalidArgumentException(option,argv[i]);
2836 if (LocaleCompare("smush",option+1) == 0)
2839 if (i == (ssize_t) argc)
2840 ThrowConvertException(OptionError,"MissingArgument",option);
2841 if (IsGeometry(argv[i]) == MagickFalse)
2842 ThrowConvertInvalidArgumentException(option,argv[i]);
2845 if (LocaleCompare("solarize",option+1) == 0)
2850 if (i == (ssize_t) argc)
2851 ThrowConvertException(OptionError,"MissingArgument",option);
2852 if (IsGeometry(argv[i]) == MagickFalse)
2853 ThrowConvertInvalidArgumentException(option,argv[i]);
2856 if (LocaleCompare("sparse-color",option+1) == 0)
2862 if (i == (ssize_t) argc)
2863 ThrowConvertException(OptionError,"MissingArgument",option);
2864 op=ParseCommandOption(MagickSparseColorOptions,MagickFalse,argv[i]);
2866 ThrowConvertException(OptionError,"UnrecognizedSparseColorMethod",
2869 if (i == (ssize_t) argc)
2870 ThrowConvertException(OptionError,"MissingArgument",option);
2873 if (LocaleCompare("splice",option+1) == 0)
2878 if (i == (ssize_t) argc)
2879 ThrowConvertException(OptionError,"MissingArgument",option);
2880 if (IsGeometry(argv[i]) == MagickFalse)
2881 ThrowConvertInvalidArgumentException(option,argv[i]);
2884 if (LocaleCompare("spread",option+1) == 0)
2889 if ((i == (ssize_t) argc) ||
2890 (IsGeometry(argv[i]) == MagickFalse))
2891 ThrowConvertException(OptionError,"MissingArgument",option);
2894 if (LocaleCompare("statistic",option+1) == 0)
2902 if (i == (ssize_t) argc)
2903 ThrowConvertException(OptionError,"MissingArgument",option);
2904 op=ParseCommandOption(MagickStatisticOptions,MagickFalse,argv[i]);
2906 ThrowConvertException(OptionError,"UnrecognizedStatisticType",
2909 if (i == (ssize_t) argc)
2910 ThrowConvertException(OptionError,"MissingArgument",option);
2911 if (IsGeometry(argv[i]) == MagickFalse)
2912 ThrowConvertInvalidArgumentException(option,argv[i]);
2915 if (LocaleCompare("stretch",option+1) == 0)
2923 if (i == (ssize_t) argc)
2924 ThrowConvertException(OptionError,"MissingArgument",option);
2925 stretch=ParseCommandOption(MagickStretchOptions,MagickFalse,
2928 ThrowConvertException(OptionError,"UnrecognizedStyleType",
2932 if (LocaleCompare("strip",option+1) == 0)
2934 if (LocaleCompare("stroke",option+1) == 0)
2939 if (i == (ssize_t) argc)
2940 ThrowConvertException(OptionError,"MissingArgument",option);
2943 if (LocaleCompare("strokewidth",option+1) == 0)
2948 if (i == (ssize_t) argc)
2949 ThrowConvertException(OptionError,"MissingArgument",option);
2950 if (IsGeometry(argv[i]) == MagickFalse)
2951 ThrowConvertInvalidArgumentException(option,argv[i]);
2954 if (LocaleCompare("style",option+1) == 0)
2962 if (i == (ssize_t) argc)
2963 ThrowConvertException(OptionError,"MissingArgument",option);
2964 style=ParseCommandOption(MagickStyleOptions,MagickFalse,argv[i]);
2966 ThrowConvertException(OptionError,"UnrecognizedStyleType",
2970 if (LocaleCompare("support",option+1) == 0)
2972 i++; /* deprecated */
2975 if (LocaleCompare("swap",option+1) == 0)
2980 if (i == (ssize_t) argc)
2981 ThrowConvertException(OptionError,"MissingArgument",option);
2982 if (IsGeometry(argv[i]) == MagickFalse)
2983 ThrowConvertInvalidArgumentException(option,argv[i]);
2986 if (LocaleCompare("swirl",option+1) == 0)
2991 if (i == (ssize_t) argc)
2992 ThrowConvertException(OptionError,"MissingArgument",option);
2993 if (IsGeometry(argv[i]) == MagickFalse)
2994 ThrowConvertInvalidArgumentException(option,argv[i]);
2997 if (LocaleCompare("synchronize",option+1) == 0)
2999 ThrowConvertException(OptionError,"UnrecognizedOption",option)
3003 if (LocaleCompare("taint",option+1) == 0)
3005 if (LocaleCompare("texture",option+1) == 0)
3010 if (i == (ssize_t) argc)
3011 ThrowConvertException(OptionError,"MissingArgument",option);
3014 if (LocaleCompare("threshold",option+1) == 0)
3019 if (i == (ssize_t) argc)
3020 ThrowConvertException(OptionError,"MissingArgument",option);
3021 if (IsGeometry(argv[i]) == MagickFalse)
3022 ThrowConvertInvalidArgumentException(option,argv[i]);
3025 if (LocaleCompare("thumbnail",option+1) == 0)
3030 if (i == (ssize_t) argc)
3031 ThrowConvertException(OptionError,"MissingArgument",option);
3032 if (IsGeometry(argv[i]) == MagickFalse)
3033 ThrowConvertInvalidArgumentException(option,argv[i]);
3036 if (LocaleCompare("tile",option+1) == 0)
3041 if (i == (ssize_t) argc)
3042 ThrowConvertException(OptionError,"MissingArgument",option);
3045 if (LocaleCompare("tile-offset",option+1) == 0)
3050 if (i == (ssize_t) argc)
3051 ThrowConvertException(OptionError,"MissingArgument",option);
3052 if (IsGeometry(argv[i]) == MagickFalse)
3053 ThrowConvertInvalidArgumentException(option,argv[i]);
3056 if (LocaleCompare("tint",option+1) == 0)
3061 if (i == (ssize_t) argc)
3062 ThrowConvertException(OptionError,"MissingArgument",option);
3063 if (IsGeometry(argv[i]) == MagickFalse)
3064 ThrowConvertInvalidArgumentException(option,argv[i]);
3067 if (LocaleCompare("transform",option+1) == 0)
3069 if (LocaleCompare("transparent",option+1) == 0)
3072 if (i == (ssize_t) argc)
3073 ThrowConvertException(OptionError,"MissingArgument",option);
3076 if (LocaleCompare("transparent-color",option+1) == 0)
3081 if (i == (ssize_t) argc)
3082 ThrowConvertException(OptionError,"MissingArgument",option);
3085 if (LocaleCompare("transpose",option+1) == 0)
3087 if (LocaleCompare("transverse",option+1) == 0)
3089 if (LocaleCompare("treedepth",option+1) == 0)
3094 if (i == (ssize_t) argc)
3095 ThrowConvertException(OptionError,"MissingArgument",option);
3096 if (IsGeometry(argv[i]) == MagickFalse)
3097 ThrowConvertInvalidArgumentException(option,argv[i]);
3100 if (LocaleCompare("trim",option+1) == 0)
3102 if (LocaleCompare("type",option+1) == 0)
3110 if (i == (ssize_t) argc)
3111 ThrowConvertException(OptionError,"MissingArgument",option);
3112 type=ParseCommandOption(MagickTypeOptions,MagickFalse,argv[i]);
3114 ThrowConvertException(OptionError,"UnrecognizedImageType",
3118 ThrowConvertException(OptionError,"UnrecognizedOption",option)
3122 if (LocaleCompare("undercolor",option+1) == 0)
3127 if (i == (ssize_t) argc)
3128 ThrowConvertException(OptionError,"MissingArgument",option);
3131 if (LocaleCompare("unique-colors",option+1) == 0)
3133 if (LocaleCompare("units",option+1) == 0)
3141 if (i == (ssize_t) argc)
3142 ThrowConvertException(OptionError,"MissingArgument",option);
3143 units=ParseCommandOption(MagickResolutionOptions,MagickFalse,
3146 ThrowConvertException(OptionError,"UnrecognizedUnitsType",
3150 if (LocaleCompare("unsharp",option+1) == 0)
3155 if (i == (ssize_t) argc)
3156 ThrowConvertException(OptionError,"MissingArgument",option);
3157 if (IsGeometry(argv[i]) == MagickFalse)
3158 ThrowConvertInvalidArgumentException(option,argv[i]);
3161 ThrowConvertException(OptionError,"UnrecognizedOption",option)
3165 if (LocaleCompare("verbose",option+1) == 0)
3167 if ((LocaleCompare("version",option+1) == 0) ||
3168 (LocaleCompare("-version",option+1) == 0))
3170 ListMagickVersion(stdout);
3173 if (LocaleCompare("vignette",option+1) == 0)
3178 if (i == (ssize_t) argc)
3179 ThrowConvertException(OptionError,"MissingArgument",option);
3180 if (IsGeometry(argv[i]) == MagickFalse)
3181 ThrowConvertInvalidArgumentException(option,argv[i]);
3184 if (LocaleCompare("virtual-pixel",option+1) == 0)
3192 if (i == (ssize_t) argc)
3193 ThrowConvertException(OptionError,"MissingArgument",option);
3194 method=ParseCommandOption(MagickVirtualPixelOptions,MagickFalse,
3197 ThrowConvertException(OptionError,
3198 "UnrecognizedVirtualPixelMethod",argv[i]);
3201 ThrowConvertException(OptionError,"UnrecognizedOption",option)
3205 if (LocaleCompare("wave",option+1) == 0)
3208 if (i == (ssize_t) argc)
3209 ThrowConvertException(OptionError,"MissingArgument",option);
3210 if (IsGeometry(argv[i]) == MagickFalse)
3211 ThrowConvertInvalidArgumentException(option,argv[i]);
3214 if (LocaleCompare("wavelet-denoise",option+1) == 0)
3217 if (i == (ssize_t) argc)
3218 ThrowConvertException(OptionError,"MissingArgument",option);
3219 if (IsGeometry(argv[i]) == MagickFalse)
3220 ThrowConvertInvalidArgumentException(option,argv[i]);
3223 if (LocaleCompare("weight",option+1) == 0)
3228 if (i == (ssize_t) argc)
3229 ThrowConvertException(OptionError,"MissingArgument",option);
3232 if (LocaleCompare("white-point",option+1) == 0)
3237 if (i == (ssize_t) argc)
3238 ThrowConvertException(OptionError,"MissingArgument",option);
3239 if (IsGeometry(argv[i]) == MagickFalse)
3240 ThrowConvertInvalidArgumentException(option,argv[i]);
3243 if (LocaleCompare("white-threshold",option+1) == 0)
3248 if (i == (ssize_t) argc)
3249 ThrowConvertException(OptionError,"MissingArgument",option);
3250 if (IsGeometry(argv[i]) == MagickFalse)
3251 ThrowConvertInvalidArgumentException(option,argv[i]);
3254 if (LocaleCompare("write",option+1) == 0)
3257 if (i == (ssize_t) argc)
3258 ThrowConvertException(OptionError,"MissingArgument",option);
3261 if (LocaleCompare("write-mask",option+1) == 0)
3266 if (i == (ssize_t) argc)
3267 ThrowConvertException(OptionError,"MissingArgument",option);
3270 ThrowConvertException(OptionError,"UnrecognizedOption",option)
3275 ThrowConvertException(OptionError,"UnrecognizedOption",option)
3277 fire=(GetCommandOptionFlags(MagickCommandOptions,MagickFalse,option) &
3278 FireOptionFlag) == 0 ? MagickFalse : MagickTrue;
3279 if (fire != MagickFalse)
3280 FireImageStack(MagickTrue,MagickTrue,MagickTrue);
3283 ThrowConvertException(OptionError,"UnbalancedParenthesis",argv[i]);
3284 if (i-- != (ssize_t) (argc-1))
3285 ThrowConvertException(OptionError,"MissingAnImageFilename",argv[argc-1]);
3286 FinalizeImageSettings(image_info,image,MagickTrue);
3287 if (image == (Image *) NULL)
3288 ThrowConvertException(OptionError,"NoImagesDefined",argv[argc-1]);
3289 if (IsCommandOption(argv[argc-1]))
3290 ThrowConvertException(OptionError,"MissingAnImageFilename",argv[argc-1]);
3291 if (LocaleCompare(" ",argv[argc-1])==0) /* common line continuation error */
3292 ThrowConvertException(OptionError,"MissingAnImageFilename",argv[argc-1]);
3293 status&=WriteImages(image_info,image,argv[argc-1],exception);
3294 if (metadata != (char **) NULL)
3299 text=InterpretImageProperties(image_info,image,format,exception);
3300 if (text == (char *) NULL)
3301 ThrowConvertException(ResourceLimitError,"MemoryAllocationFailed",
3302 GetExceptionMessage(errno));
3303 (void) ConcatenateString(&(*metadata),text);
3304 text=DestroyString(text);
3307 return(status != 0 ? MagickTrue : MagickFalse);