44#include "MagickWand/studio.h"
45#include "MagickWand/MagickWand.h"
46#include "MagickWand/mogrify-private.h"
47#include "MagickCore/display-private.h"
48#include "MagickCore/string-private.h"
94static MagickBooleanType DisplayUsage(
void)
98 " 1 press to map or unmap the Command widget\n"
99 " 2 press and drag to magnify a region of an image\n"
100 " 3 press to load an image from a visual image directory",
102 " -debug events display copious debugging information\n"
103 " -help print program options\n"
104 " -list type print a list of supported option arguments\n"
105 " -log format format of debugging information\n"
106 " -version print version information",
108 " -auto-level automagically adjust color levels of image\n"
109 " -auto-orient automagically orient image\n"
110 " -border geometry surround image with a border of color\n"
111 " -clip clip along the first path from the 8BIM profile\n"
112 " -clip-path id clip along a named path from the 8BIM profile\n"
113 " -colors value preferred number of colors in the image\n"
114 " -contrast enhance or reduce the image contrast\n"
115 " -crop geometry preferred size and location of the cropped image\n"
116 " -decipher filename convert cipher pixels to plain pixels\n"
117 " -deskew threshold straighten an image\n"
118 " -despeckle reduce the speckles within an image\n"
119 " -edge factor apply a filter to detect edges in the image\n"
120 " -enhance apply a digital filter to enhance a noisy image\n"
121 " -equalize perform histogram equalization to an image\n"
122 " -extent geometry set the image size\n"
123 " -extract geometry extract area from image\n"
124 " -flip flip image in the vertical direction\n"
125 " -flop flop image in the horizontal direction\n"
126 " -frame geometry surround image with an ornamental border\n"
127 " -fuzz distance colors within this distance are considered equal\n"
128 " -gamma value level of gamma correction\n"
129 " -monochrome transform image to black and white\n"
130 " -negate replace every pixel with its complementary color\n"
131 " -normalize transform image to span the full range of colors\n"
132 " -raise value lighten/darken image edges to create a 3-D effect\n"
133 " -resample geometry change the resolution of an image\n"
134 " -resize geometry resize the image\n"
135 " -roll geometry roll an image vertically or horizontally\n"
136 " -rotate degrees apply Paeth rotation to the image\n"
137 " -sample geometry scale image with pixel sampling\n"
138 " -segment value segment an image\n"
139 " -sharpen geometry sharpen the image\n"
140 " -strip strip image of all profiles and comments\n"
141 " -threshold value threshold the image\n"
142 " -thumbnail geometry create a thumbnail of the image\n"
143 " -trim trim image edges",
145 " -alpha option on, activate, off, deactivate, set, opaque, copy\n"
146 " transparent, extract, background, or shape\n"
147 " -antialias remove pixel-aliasing\n"
148 " -authenticate password\n"
149 " decipher image with this password\n"
150 " -backdrop display image centered on a backdrop\n"
151 " -channel type apply option to select image channels\n"
152 " -colormap type Shared or Private\n"
153 " -colorspace type alternate image colorspace\n"
154 " -comment string annotate image with comment\n"
155 " -compress type type of pixel compression when writing the image\n"
156 " -define format:option\n"
157 " define one or more image format options\n"
158 " -delay value display the next image after pausing\n"
159 " -density geometry horizontal and vertical density of the image\n"
160 " -depth value image depth\n"
161 " -display server display image to this X server\n"
162 " -dispose method layer disposal method\n"
163 " -dither method apply error diffusion to image\n"
164 " -endian type endianness (MSB or LSB) of the image\n"
165 " -filter type use this filter when resizing an image\n"
166 " -format string output formatted image characteristics\n"
167 " -geometry geometry preferred size and location of the Image window\n"
168 " -gravity type horizontal and vertical backdrop placement\n"
169 " -identify identify the format and characteristics of the image\n"
170 " -immutable displayed image cannot be modified\n"
171 " -interlace type type of image interlacing scheme\n"
172 " -interpolate method pixel color interpolation method\n"
173 " -label string assign a label to an image\n"
174 " -limit type value pixel cache resource limit\n"
175 " -loop iterations loop images then exit\n"
176 " -map type display image using this Standard Colormap\n"
177 " -matte store matte channel if the image has one\n"
178 " -monitor monitor progress\n"
179 " -nostdin do not try to open stdin\n"
180 " -page geometry size and location of an image canvas\n"
181 " -profile filename add, delete, or apply an image profile\n"
182 " -quality value JPEG/MIFF/PNG compression level\n"
183 " -quantize colorspace reduce colors in this colorspace\n"
184 " -quiet suppress all warning messages\n"
185 " -regard-warnings pay attention to warning messages\n"
186 " -remote command execute a command in an remote display process\n"
187 " -repage geometry size and location of an image canvas (operator)\n"
188 " -respect-parentheses settings remain in effect until parenthesis boundary\n"
189 " -sampling-factor geometry\n"
190 " horizontal and vertical sampling factor\n"
191 " -scenes range image scene range\n"
192 " -seed value seed a new sequence of pseudo-random numbers\n"
193 " -set property value set an image property\n"
194 " -size geometry width and height of image\n"
195 " -support factor resize support: > 1.0 is blurry, < 1.0 is sharp\n"
196 " -texture filename name of texture to tile onto the image background\n"
197 " -transparent-color color\n"
198 " transparent color\n"
199 " -treedepth value color tree depth\n"
200 " -update seconds detect when image file is modified and redisplay\n"
201 " -verbose print detailed information about the image\n"
202 " -visual type display image using this visual type\n"
203 " -virtual-pixel method\n"
204 " virtual pixel access method\n"
205 " -window id display image to background of this window\n"
206 " -window-group id exit program when this window id is destroyed\n"
207 " -write filename write image to a file",
208 sequence_operators[] =
209 " -coalesce merge a sequence of images\n"
210 " -flatten flatten a sequence of images";
212 ListMagickVersion(stdout);
213 (void) printf(
"Usage: %s [options ...] file [ [options ...] file ...]\n",
215 (void) printf(
"\nImage Settings:\n");
216 (void) puts(settings);
217 (void) printf(
"\nImage Operators:\n");
218 (void) puts(operators);
219 (void) printf(
"\nImage Sequence Operators:\n");
220 (void) puts(sequence_operators);
221 (void) printf(
"\nMiscellaneous Options:\n");
222 (void) puts(miscellaneous);
224 "\nIn addition to those listed above, you can specify these standard X\n");
226 "resources as command line options: -background, -bordercolor,\n");
228 " -mattecolor, -borderwidth, -font, -foreground, -iconGeometry,\n");
229 (void) printf(
"-iconic, -name, -shared-memory, -usePixmap, or -title.\n");
231 "\nBy default, the image format of 'file' is determined by its magic\n");
233 "number. To specify a particular image format, precede the filename\n");
235 "with an image format name and a colon (i.e. ps:image) or specify the\n");
237 "image type as the filename suffix (i.e. image.ps). Specify 'file' as\n");
238 (void) printf(
"'-' for standard input or output.\n");
239 (void) printf(
"\nButtons: \n");
240 (void) puts(buttons);
244#if defined(MAGICKCORE_X11_DELEGATE)
245WandExport MagickBooleanType DisplayImageCommand(ImageInfo *image_info,
246 int argc,
char **argv,
char **wand_unused(metadata),ExceptionInfo *exception)
248#define DestroyDisplay() \
250 if ((state & ExitState) == 0) \
251 DestroyXResources(); \
252 if (display != (Display *) NULL) \
254 XCloseDisplay(display); \
255 display=(Display *) NULL; \
257 XDestroyResourceInfo(&resource_info); \
258 DestroyImageStack(); \
259 if (image_marker != (size_t *) NULL) \
260 image_marker=(size_t *) RelinquishMagickMemory(image_marker); \
261 for (i=0; i < (ssize_t) argc; i++) \
262 argv[i]=DestroyString(argv[i]); \
263 argv=(char **) RelinquishMagickMemory(argv); \
265#define ThrowDisplayException(asperity,tag,option) \
267 char *message = GetExceptionMessage(errno); \
268 (void) ThrowMagickException(exception,GetMagickModule(),asperity,tag, \
269 "`%s'",option == (char *) NULL ? message : option); \
270 message=DestroyString(message); \
272 return(MagickFalse); \
274#define ThrowDisplayInvalidArgumentException(option,argument) \
276 (void) ThrowMagickException(exception,GetMagickModule(),OptionError, \
277 "InvalidArgument","'%s': %s",option,argument); \
279 return(MagickFalse); \
296 image_stack[MaxImageStackDepth+1];
335 assert(image_info != (ImageInfo *) NULL);
336 assert(image_info->signature == MagickCoreSignature);
337 assert(exception != (ExceptionInfo *) NULL);
338 wand_unreferenced(metadata);
339 if (IsEventLogging() != MagickFalse)
340 (void) LogMagickEvent(TraceEvent,GetMagickModule(),
"...");
344 if ((LocaleCompare(
"version",option+1) == 0) ||
345 (LocaleCompare(
"-version",option+1) == 0))
347 ListMagickVersion(stdout);
352 display=(Display *) NULL;
355 image_marker=(
size_t *) NULL;
359 option=(
char *) NULL;
361 respect_parentheses=MagickFalse;
363 resource_database=(XrmDatabase) NULL;
364 (void) memset(&resource_info,0,
sizeof(resource_info));
365 server_name=(
char *) NULL;
368 ReadCommandlLine(argc,&argv);
369 status=ExpandFilenames(&argc,&argv);
370 if (status == MagickFalse)
371 ThrowDisplayException(ResourceLimitError,
"MemoryAllocationFailed",
373 image_marker=(
size_t *) AcquireQuantumMemory((
size_t) argc+1UL,
374 sizeof(*image_marker));
375 if (image_marker == (
size_t *) NULL)
376 ThrowDisplayException(ResourceLimitError,
"MemoryAllocationFailed",
378 for (i=0; i <= (ssize_t) argc; i++)
379 image_marker[i]=(
size_t) argc;
383 for (i=1; i < (ssize_t) argc; i++)
389 if (IsCommandOption(option) == MagickFalse)
391 if (LocaleCompare(
"display",option+1) == 0)
397 if (i == (ssize_t) argc)
398 ThrowDisplayException(OptionError,
"MissingArgument",option);
401 if (LocaleCompare(
"nostdin",option+1) == 0)
403 if ((LocaleCompare(
"help",option+1) == 0) ||
404 (LocaleCompare(
"-help",option+1) == 0))
407 return(DisplayUsage());
413 display=XOpenDisplay(server_name);
414 if (display == (Display *) NULL)
415 ThrowDisplayException(XServerError,
"UnableToOpenXServer",
416 XDisplayName(server_name));
417 (void) XSetErrorHandler(XError);
418 resource_database=XGetResourceDatabase(display,GetClientName());
419 XGetResourceInfo(image_info,resource_database,GetClientName(),
421 quantize_info=resource_info.quantize_info;
422 image_info->density=XGetResourceInstance(resource_database,GetClientName(),
423 "density",(
char *) NULL);
424 if (image_info->density == (
char *) NULL)
425 image_info->density=XGetScreenDensity(display);
426 resource_value=XGetResourceInstance(resource_database,GetClientName(),
428 image_info->interlace=(InterlaceType)
429 ParseCommandOption(MagickInterlaceOptions,MagickFalse,resource_value);
430 image_info->page=XGetResourceInstance(resource_database,GetClientName(),
431 "pageGeometry",(
char *) NULL);
432 resource_value=XGetResourceInstance(resource_database,GetClientName(),
434 image_info->quality=StringToUnsignedLong(resource_value);
435 resource_value=XGetResourceInstance(resource_database,GetClientName(),
437 image_info->verbose=IsStringTrue(resource_value);
438 resource_value=XGetResourceInstance(resource_database,GetClientName(),
440 quantize_info->dither_method=IsStringTrue(resource_value) != MagickFalse ?
441 RiemersmaDitherMethod : NoDitherMethod;
446 for (i=1; ((i <= (ssize_t) argc) && ((state & ExitState) == 0)); i++)
448 if (i < (ssize_t) argc)
451 if (image != (Image *) NULL)
454 if (isatty(STDIN_FILENO) != MagickFalse || (nostdin != MagickFalse))
458 if (LocaleCompare(option,
"(") == 0)
460 FireImageStack(MagickFalse,MagickTrue,pend);
461 if (k == MaxImageStackDepth)
462 ThrowDisplayException(OptionError,
"ParenthesisNestedTooDeeply",
467 if (LocaleCompare(option,
")") == 0)
469 FireImageStack(MagickFalse,MagickTrue,MagickTrue);
471 ThrowDisplayException(OptionError,
"UnableToParseExpression",option);
475 if (IsCommandOption(option) == MagickFalse)
488 FireImageStack(MagickFalse,MagickFalse,pend);
490 if ((LocaleCompare(filename,
"--") == 0) && (i < ((ssize_t) argc-1)))
495 (void) CopyMagickString(image_info->filename,filename,MagickPathExtent);
496 images=ReadImage(image_info,exception);
497 CatchException(exception);
498 status&=(MagickStatusType) (images != (Image *) NULL) &&
499 (exception->severity < ErrorException);
500 if (images == (Image *) NULL)
502 AppendImageStack(images);
503 FinalizeImageSettings(image_info,image,MagickFalse);
504 iterations=image->iterations;
505 image_list=CloneImageList(image,exception);
506 if (image_list == (Image *) NULL)
507 ThrowDisplayException(ResourceLimitError,
"MemoryAllocationFailed",
509 display_image=image_list;
515 resource_info.quantum=1;
516 if (resource_info.window_id != (
char *) NULL)
521 status=XDisplayBackgroundImage(display,&resource_info,
522 display_image,exception);
523 if (status != MagickFalse)
525 state|=RetainColorsState;
528 if (GetNextImageInList(display_image) == (Image *) NULL)
540 if (resource_info.delay != 1)
541 display_image->delay=resource_info.delay;
542 nexus=XDisplayImage(display,&resource_info,argv,argc,
543 &display_image,&state,exception);
544 if (nexus == (Image *) NULL)
546 while ((nexus != (Image *) NULL) && ((state & ExitState) == 0))
551 if (nexus->montage != (
char *) NULL)
559 next=XDisplayImage(display,&resource_info,argv,argc,&nexus,
561 if ((next == (Image *) NULL) &&
562 (GetNextImageInList(nexus) != (Image *) NULL))
564 display_image=GetNextImageInList(nexus);
565 nexus=NewImageList();
569 if (nexus != display_image)
570 nexus=DestroyImageList(nexus);
574 }
while ((state & ExitState) == 0);
575 if (resource_info.write_filename != (
char *) NULL)
580 (void) CopyMagickString(display_image->filename,
581 resource_info.write_filename,MagickPathExtent);
582 (void) SetImageInfo(image_info,1,exception);
583 status&=(MagickStatusType) WriteImage(image_info,display_image,
589 if ((state & FormerImageState) != 0)
590 for (l=0; l < (ssize_t) resource_info.quantum; l++)
592 if (GetPreviousImageInList(display_image) == (Image *) NULL)
594 display_image=GetPreviousImageInList(display_image);
597 for (l=0; l < (ssize_t) resource_info.quantum; l++)
599 if (GetNextImageInList(display_image) == (Image *) NULL)
601 display_image=GetNextImageInList(display_image);
603 if (l < (ssize_t) resource_info.quantum)
605 }
while ((display_image != (Image *) NULL) && ((state & ExitState) == 0));
609 display_image=DestroyImageList(display_image);
610 if ((state & FormerImageState) == 0)
612 last_image=(size_t) image_number;
613 image_marker[i]=(size_t) image_number++;
620 for (i--; i > 0; i--)
621 if (image_marker[i] == (
size_t) (image_number-2))
625 if ((i == (ssize_t) argc) && ((state & ExitState) == 0))
627 if ((state & ExitState) != 0)
632 if (image_number < 0)
634 if ((state & FormerImageState) != 0)
637 for (i=1; i < ((ssize_t) argc-2); i++)
638 if (last_image == image_marker[i])
640 image_number=(ssize_t) image_marker[i]+1;
644 if (resource_info.window_id != (
char *) NULL)
648 if (++iteration == (ssize_t) iterations)
652 if (LocaleCompare(filename,
"-") == 0)
654 RemoveAllImageStack();
657 pend=image != (Image *) NULL ? MagickTrue : MagickFalse;
662 if (LocaleCompare(
"alpha",option+1) == 0)
670 if (i == (ssize_t) argc)
671 ThrowDisplayException(OptionError,
"MissingArgument",option);
672 type=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,
675 ThrowDisplayException(OptionError,
676 "UnrecognizedAlphaChannelOption",argv[i]);
679 if (LocaleCompare(
"antialias",option+1) == 0)
681 if (LocaleCompare(
"authenticate",option+1) == 0)
686 if (i == (ssize_t) argc)
687 ThrowDisplayException(OptionError,
"MissingArgument",option);
690 if (LocaleCompare(
"auto-level",option+1) == 0)
692 if (LocaleCompare(
"auto-orient",option+1) == 0)
694 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
698 if (LocaleCompare(
"backdrop",option+1) == 0)
700 resource_info.backdrop=(*option ==
'-') ? MagickTrue : MagickFalse;
703 if (LocaleCompare(
"background",option+1) == 0)
708 if (i == (ssize_t) argc)
709 ThrowDisplayException(OptionError,
"MissingArgument",option);
710 resource_info.background_color=argv[i];
713 if (LocaleCompare(
"border",option+1) == 0)
718 if (i == (ssize_t) argc)
719 ThrowDisplayException(OptionError,
"MissingArgument",option);
720 if (IsGeometry(argv[i]) == MagickFalse)
721 ThrowDisplayInvalidArgumentException(option,argv[i]);
724 if (LocaleCompare(
"bordercolor",option+1) == 0)
729 if (i == (ssize_t) argc)
730 ThrowDisplayException(OptionError,
"MissingArgument",option);
731 resource_info.border_color=argv[i];
734 if (LocaleCompare(
"borderwidth",option+1) == 0)
736 resource_info.border_width=0;
740 if (i == (ssize_t) argc)
741 ThrowDisplayException(OptionError,
"MissingArgument",option);
742 if (IsGeometry(argv[i]) == MagickFalse)
743 ThrowDisplayInvalidArgumentException(option,argv[i]);
744 resource_info.border_width=(
unsigned int)
745 StringToUnsignedLong(argv[i]);
748 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
752 if (LocaleCompare(
"cache",option+1) == 0)
757 if (i == (ssize_t) argc)
758 ThrowDisplayException(OptionError,
"MissingArgument",option);
759 if (IsGeometry(argv[i]) == MagickFalse)
760 ThrowDisplayInvalidArgumentException(option,argv[i]);
763 if (LocaleCompare(
"channel",option+1) == 0)
771 if (i == (ssize_t) argc)
772 ThrowDisplayException(OptionError,
"MissingArgument",option);
773 channel=ParseChannelOption(argv[i]);
775 ThrowDisplayException(OptionError,
"UnrecognizedChannelType",
779 if (LocaleCompare(
"clip",option+1) == 0)
781 if (LocaleCompare(
"clip-path",option+1) == 0)
784 if (i == (ssize_t) argc)
785 ThrowDisplayException(OptionError,
"MissingArgument",option);
788 if (LocaleCompare(
"coalesce",option+1) == 0)
790 if (LocaleCompare(
"colormap",option+1) == 0)
792 resource_info.colormap=PrivateColormap;
796 if (i == (ssize_t) argc)
797 ThrowDisplayException(OptionError,
"MissingArgument",option);
798 resource_info.colormap=UndefinedColormap;
799 if (LocaleCompare(
"private",argv[i]) == 0)
800 resource_info.colormap=PrivateColormap;
801 if (LocaleCompare(
"shared",argv[i]) == 0)
802 resource_info.colormap=SharedColormap;
803 if (resource_info.colormap == UndefinedColormap)
804 ThrowDisplayException(OptionError,
"UnrecognizedColormapType",
808 if (LocaleCompare(
"colors",option+1) == 0)
810 quantize_info->number_colors=0;
814 if (i == (ssize_t) argc)
815 ThrowDisplayException(OptionError,
"MissingArgument",option);
816 if (IsGeometry(argv[i]) == MagickFalse)
817 ThrowDisplayInvalidArgumentException(option,argv[i]);
818 quantize_info->number_colors=StringToUnsignedLong(argv[i]);
821 if (LocaleCompare(
"colorspace",option+1) == 0)
829 if (i == (ssize_t) argc)
830 ThrowDisplayException(OptionError,
"MissingArgument",option);
831 colorspace=ParseCommandOption(MagickColorspaceOptions,
832 MagickFalse,argv[i]);
834 ThrowDisplayException(OptionError,
"UnrecognizedColorspace",
838 if (LocaleCompare(
"comment",option+1) == 0)
843 if (i == (ssize_t) argc)
844 ThrowDisplayException(OptionError,
"MissingArgument",option);
847 if (LocaleCompare(
"compress",option+1) == 0)
855 if (i == (ssize_t) argc)
856 ThrowDisplayException(OptionError,
"MissingArgument",option);
857 compress=ParseCommandOption(MagickCompressOptions,MagickFalse,
860 ThrowDisplayException(OptionError,
"UnrecognizedImageCompression",
864 if (LocaleCompare(
"concurrent",option+1) == 0)
866 if (LocaleCompare(
"contrast",option+1) == 0)
868 if (LocaleCompare(
"crop",option+1) == 0)
873 if (i == (ssize_t) argc)
874 ThrowDisplayException(OptionError,
"MissingArgument",option);
875 if (IsGeometry(argv[i]) == MagickFalse)
876 ThrowDisplayInvalidArgumentException(option,argv[i]);
879 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
883 if (LocaleCompare(
"debug",option+1) == 0)
891 if (i == (ssize_t) argc)
892 ThrowDisplayException(OptionError,
"MissingArgument",option);
893 event=ParseCommandOption(MagickLogEventOptions,MagickFalse,argv[i]);
895 ThrowDisplayException(OptionError,
"UnrecognizedEventType",
897 (void) SetLogEventMask(argv[i]);
900 if (LocaleCompare(
"decipher",option+1) == 0)
905 if (i == (ssize_t) argc)
906 ThrowDisplayException(OptionError,
"MissingArgument",option);
909 if (LocaleCompare(
"define",option+1) == 0)
912 if (i == (ssize_t) argc)
913 ThrowDisplayException(OptionError,
"MissingArgument",option);
919 define=GetImageOption(image_info,argv[i]);
920 if (define == (
const char *) NULL)
921 ThrowDisplayException(OptionError,
"NoSuchOption",argv[i]);
926 if (LocaleCompare(
"delay",option+1) == 0)
931 if (i == (ssize_t) argc)
932 ThrowDisplayException(OptionError,
"MissingArgument",option);
933 if (IsGeometry(argv[i]) == MagickFalse)
934 ThrowDisplayInvalidArgumentException(option,argv[i]);
937 if (LocaleCompare(
"density",option+1) == 0)
942 if (i == (ssize_t) argc)
943 ThrowDisplayException(OptionError,
"MissingArgument",option);
944 if (IsGeometry(argv[i]) == MagickFalse)
945 ThrowDisplayInvalidArgumentException(option,argv[i]);
948 if (LocaleCompare(
"depth",option+1) == 0)
953 if (i == (ssize_t) argc)
954 ThrowDisplayException(OptionError,
"MissingArgument",option);
955 if (IsGeometry(argv[i]) == MagickFalse)
956 ThrowDisplayInvalidArgumentException(option,argv[i]);
959 if (LocaleCompare(
"deskew",option+1) == 0)
964 if (i == (ssize_t) argc)
965 ThrowDisplayException(OptionError,
"MissingArgument",option);
966 if (IsGeometry(argv[i]) == MagickFalse)
967 ThrowDisplayInvalidArgumentException(option,argv[i]);
970 if (LocaleCompare(
"despeckle",option+1) == 0)
972 if (LocaleCompare(
"display",option+1) == 0)
977 if (i == (ssize_t) argc)
978 ThrowDisplayException(OptionError,
"MissingArgument",option);
981 if (LocaleCompare(
"dispose",option+1) == 0)
989 if (i == (ssize_t) argc)
990 ThrowDisplayException(OptionError,
"MissingArgument",option);
991 dispose=ParseCommandOption(MagickDisposeOptions,MagickFalse,argv[i]);
993 ThrowDisplayException(OptionError,
"UnrecognizedDisposeMethod",
997 if (LocaleCompare(
"dither",option+1) == 0)
1002 quantize_info->dither_method=NoDitherMethod;
1006 if (i == (ssize_t) argc)
1007 ThrowDisplayException(OptionError,
"MissingArgument",option);
1008 method=ParseCommandOption(MagickDitherOptions,MagickFalse,argv[i]);
1010 ThrowDisplayException(OptionError,
"UnrecognizedDitherMethod",
1012 quantize_info->dither_method=(DitherMethod) method;
1015 if (LocaleCompare(
"duration",option+1) == 0)
1020 if (i == (ssize_t) argc)
1021 ThrowDisplayException(OptionError,
"MissingArgument",option);
1022 if (IsGeometry(argv[i]) == MagickFalse)
1023 ThrowDisplayInvalidArgumentException(option,argv[i]);
1026 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1030 if (LocaleCompare(
"edge",option+1) == 0)
1035 if (i == (ssize_t) argc)
1036 ThrowDisplayException(OptionError,
"MissingArgument",option);
1037 if (IsGeometry(argv[i]) == MagickFalse)
1038 ThrowDisplayInvalidArgumentException(option,argv[i]);
1041 if (LocaleCompare(
"endian",option+1) == 0)
1049 if (i == (ssize_t) argc)
1050 ThrowDisplayException(OptionError,
"MissingArgument",option);
1051 endian=ParseCommandOption(MagickEndianOptions,MagickFalse,
1054 ThrowDisplayException(OptionError,
"UnrecognizedEndianType",
1058 if (LocaleCompare(
"enhance",option+1) == 0)
1060 if (LocaleCompare(
"equalize",option+1) == 0)
1062 if (LocaleCompare(
"extent",option+1) == 0)
1067 if (i == (ssize_t) argc)
1068 ThrowDisplayException(OptionError,
"MissingArgument",option);
1069 if (IsGeometry(argv[i]) == MagickFalse)
1070 ThrowDisplayInvalidArgumentException(option,argv[i]);
1073 if (LocaleCompare(
"extract",option+1) == 0)
1078 if (i == (ssize_t) argc)
1079 ThrowDisplayException(OptionError,
"MissingArgument",option);
1080 if (IsGeometry(argv[i]) == MagickFalse)
1081 ThrowDisplayInvalidArgumentException(option,argv[i]);
1084 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1088 if (LocaleCompare(
"filter",option+1) == 0)
1096 if (i == (ssize_t) argc)
1097 ThrowDisplayException(OptionError,
"MissingArgument",option);
1098 filter=ParseCommandOption(MagickFilterOptions,MagickFalse,argv[i]);
1100 ThrowDisplayException(OptionError,
"UnrecognizedImageFilter",
1104 if (LocaleCompare(
"flatten",option+1) == 0)
1106 if (LocaleCompare(
"flip",option+1) == 0)
1108 if (LocaleCompare(
"flop",option+1) == 0)
1110 if (LocaleCompare(
"font",option+1) == 0)
1115 if (i == (ssize_t) argc)
1116 ThrowDisplayException(OptionError,
"MissingArgument",option);
1117 resource_info.font=XGetResourceClass(resource_database,
1118 GetClientName(),
"font",argv[i]);
1121 if (LocaleCompare(
"foreground",option+1) == 0)
1126 if (i == (ssize_t) argc)
1127 ThrowDisplayException(OptionError,
"MissingArgument",option);
1128 resource_info.foreground_color=argv[i];
1131 if (LocaleCompare(
"format",option+1) == 0)
1136 if (i == (ssize_t) argc)
1137 ThrowDisplayException(OptionError,
"MissingArgument",option);
1140 if (LocaleCompare(
"frame",option+1) == 0)
1145 if (i == (ssize_t) argc)
1146 ThrowDisplayException(OptionError,
"MissingArgument",option);
1147 if (IsGeometry(argv[i]) == MagickFalse)
1148 ThrowDisplayInvalidArgumentException(option,argv[i]);
1151 if (LocaleCompare(
"fuzz",option+1) == 0)
1156 if (i == (ssize_t) argc)
1157 ThrowDisplayException(OptionError,
"MissingArgument",option);
1158 if (IsGeometry(argv[i]) == MagickFalse)
1159 ThrowDisplayInvalidArgumentException(option,argv[i]);
1162 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1166 if (LocaleCompare(
"gamma",option+1) == 0)
1169 if (i == (ssize_t) argc)
1170 ThrowDisplayException(OptionError,
"MissingArgument",option);
1171 if (IsGeometry(argv[i]) == MagickFalse)
1172 ThrowDisplayInvalidArgumentException(option,argv[i]);
1175 if (LocaleCompare(
"geometry",option+1) == 0)
1177 resource_info.image_geometry=(
char *) NULL;
1180 (void) CopyMagickString(argv[i]+1,
"sans",MagickPathExtent);
1182 if (i == (ssize_t) argc)
1183 ThrowDisplayException(OptionError,
"MissingArgument",option);
1184 if (IsGeometry(argv[i]) == MagickFalse)
1185 ThrowDisplayInvalidArgumentException(option,argv[i]);
1186 resource_info.image_geometry=ConstantString(argv[i]);
1189 if (LocaleCompare(
"gravity",option+1) == 0)
1197 if (i == (ssize_t) argc)
1198 ThrowDisplayException(OptionError,
"MissingArgument",option);
1199 gravity=ParseCommandOption(MagickGravityOptions,MagickFalse,
1202 ThrowDisplayException(OptionError,
"UnrecognizedGravityType",
1206 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1210 if ((LocaleCompare(
"help",option+1) == 0) ||
1211 (LocaleCompare(
"-help",option+1) == 0))
1213 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1217 if (LocaleCompare(
"identify",option+1) == 0)
1219 if (LocaleCompare(
"iconGeometry",option+1) == 0)
1221 resource_info.icon_geometry=(
char *) NULL;
1225 if (i == (ssize_t) argc)
1226 ThrowDisplayException(OptionError,
"MissingArgument",option);
1227 if (IsGeometry(argv[i]) == MagickFalse)
1228 ThrowDisplayInvalidArgumentException(option,argv[i]);
1229 resource_info.icon_geometry=argv[i];
1232 if (LocaleCompare(
"iconic",option+1) == 0)
1234 resource_info.iconic=(*option ==
'-') ? MagickTrue : MagickFalse;
1237 if (LocaleCompare(
"immutable",option+1) == 0)
1239 resource_info.immutable=(*option ==
'-') ? MagickTrue : MagickFalse;
1242 if (LocaleCompare(
"interlace",option+1) == 0)
1250 if (i == (ssize_t) argc)
1251 ThrowDisplayException(OptionError,
"MissingArgument",option);
1252 interlace=ParseCommandOption(MagickInterlaceOptions,MagickFalse,
1255 ThrowDisplayException(OptionError,
"UnrecognizedInterlaceType",
1259 if (LocaleCompare(
"interpolate",option+1) == 0)
1267 if (i == (ssize_t) argc)
1268 ThrowDisplayException(OptionError,
"MissingArgument",option);
1269 interpolate=ParseCommandOption(MagickInterpolateOptions,MagickFalse,
1271 if (interpolate < 0)
1272 ThrowDisplayException(OptionError,
"UnrecognizedInterpolateMethod",
1276 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1280 if (LocaleCompare(
"label",option+1) == 0)
1285 if (i == (ssize_t) argc)
1286 ThrowDisplayException(OptionError,
"MissingArgument",option);
1289 if (LocaleCompare(
"limit",option+1) == 0)
1303 if (i == (ssize_t) argc)
1304 ThrowDisplayException(OptionError,
"MissingArgument",option);
1305 resource=ParseCommandOption(MagickResourceOptions,MagickFalse,
1308 ThrowDisplayException(OptionError,
"UnrecognizedResourceType",
1311 if (i == (ssize_t) argc)
1312 ThrowDisplayException(OptionError,
"MissingArgument",option);
1313 value=StringToDouble(argv[i],&p);
1315 if ((p == argv[i]) && (LocaleCompare(
"unlimited",argv[i]) != 0))
1316 ThrowDisplayInvalidArgumentException(option,argv[i]);
1319 if (LocaleCompare(
"list",option+1) == 0)
1327 if (i == (ssize_t) argc)
1328 ThrowDisplayException(OptionError,
"MissingArgument",option);
1329 list=ParseCommandOption(MagickListOptions,MagickFalse,argv[i]);
1331 ThrowDisplayException(OptionError,
"UnrecognizedListType",argv[i]);
1332 status=MogrifyImageInfo(image_info,(
int) (i-j+1),(
const char **)
1335 return(status == 0 ? MagickFalse : MagickTrue);
1337 if (LocaleCompare(
"log",option+1) == 0)
1342 if ((i == (ssize_t) argc) ||
1343 (strchr(argv[i],
'%') == (
char *) NULL))
1344 ThrowDisplayException(OptionError,
"MissingArgument",option);
1347 if (LocaleCompare(
"loop",option+1) == 0)
1352 if (i == (ssize_t) argc)
1353 ThrowDisplayException(OptionError,
"MissingArgument",option);
1354 if (IsGeometry(argv[i]) == MagickFalse)
1355 ThrowDisplayInvalidArgumentException(option,argv[i]);
1356 iterations=StringToUnsignedLong(argv[i]);
1359 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1363 if (LocaleCompare(
"magnify",option+1) == 0)
1365 resource_info.magnify=2;
1369 if (i == (ssize_t) argc)
1370 ThrowDisplayException(OptionError,
"MissingArgument",option);
1371 if (IsGeometry(argv[i]) == MagickFalse)
1372 ThrowDisplayInvalidArgumentException(option,argv[i]);
1373 resource_info.magnify=(
unsigned int) StringToUnsignedLong(argv[i]);
1376 if (LocaleCompare(
"map",option+1) == 0)
1378 resource_info.map_type=(
char *) NULL;
1381 (void) CopyMagickString(argv[i]+1,
"...",strlen(argv[i]+1)+1);
1383 if (i == (ssize_t) argc)
1384 ThrowDisplayException(OptionError,
"MissingArgument",option);
1385 resource_info.map_type=argv[i];
1388 if (LocaleCompare(
"matte",option+1) == 0)
1390 if (LocaleCompare(
"mattecolor",option+1) == 0)
1395 if (i == (ssize_t) argc)
1396 ThrowDisplayException(OptionError,
"MissingArgument",option);
1397 resource_info.matte_color=argv[i];
1400 if (LocaleCompare(
"monitor",option+1) == 0)
1402 if (LocaleCompare(
"monochrome",option+1) == 0)
1406 quantize_info->number_colors=2;
1407 quantize_info->colorspace=GRAYColorspace;
1410 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1414 if (LocaleCompare(
"name",option+1) == 0)
1416 resource_info.name=(
char *) NULL;
1420 if (i == (ssize_t) argc)
1421 ThrowDisplayException(OptionError,
"MissingArgument",option);
1422 resource_info.name=ConstantString(argv[i]);
1425 if (LocaleCompare(
"negate",option+1) == 0)
1427 if (LocaleCompare(
"noop",option+1) == 0)
1429 if (LocaleCompare(
"normalize",option+1) == 0)
1431 if (LocaleCompare(
"nostdin",option+1) == 0)
1433 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1437 if (LocaleCompare(
"page",option+1) == 0)
1439 resource_info.image_geometry=(
char *) NULL;
1443 if (i == (ssize_t) argc)
1444 ThrowDisplayException(OptionError,
"MissingArgument",option);
1445 resource_info.image_geometry=ConstantString(argv[i]);
1448 if (LocaleCompare(
"profile",option+1) == 0)
1451 if (i == (ssize_t) argc)
1452 ThrowDisplayException(OptionError,
"MissingArgument",option);
1455 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1459 if (LocaleCompare(
"quality",option+1) == 0)
1464 if (i == (ssize_t) argc)
1465 ThrowDisplayException(OptionError,
"MissingArgument",option);
1466 if (IsGeometry(argv[i]) == MagickFalse)
1467 ThrowDisplayInvalidArgumentException(option,argv[i]);
1470 if (LocaleCompare(
"quantize",option+1) == 0)
1478 if (i == (ssize_t) argc)
1479 ThrowDisplayException(OptionError,
"MissingArgument",option);
1480 colorspace=ParseCommandOption(MagickColorspaceOptions,
1481 MagickFalse,argv[i]);
1483 ThrowDisplayException(OptionError,
"UnrecognizedColorspace",
1487 if (LocaleCompare(
"quiet",option+1) == 0)
1489 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1493 if (LocaleCompare(
"raise",option+1) == 0)
1496 if (i == (ssize_t) argc)
1497 ThrowDisplayException(OptionError,
"MissingArgument",option);
1498 if (IsGeometry(argv[i]) == MagickFalse)
1499 ThrowDisplayInvalidArgumentException(option,argv[i]);
1502 if (LocaleCompare(
"regard-warnings",option+1) == 0)
1504 if (LocaleCompare(
"remote",option+1) == 0)
1507 if (i == (ssize_t) argc)
1508 ThrowDisplayException(OptionError,
"MissingArgument",option);
1509 if (XRemoteCommand(display,resource_info.window_id,argv[i]) != 0)
1512 return(MagickFalse);
1517 if (LocaleCompare(
"repage",option+1) == 0)
1522 if (i == (ssize_t) argc)
1523 ThrowDisplayException(OptionError,
"MissingArgument",option);
1524 if (IsGeometry(argv[i]) == MagickFalse)
1525 ThrowDisplayInvalidArgumentException(option,argv[i]);
1528 if (LocaleCompare(
"resample",option+1) == 0)
1533 if (i == (ssize_t) argc)
1534 ThrowDisplayException(OptionError,
"MissingArgument",option);
1535 if (IsGeometry(argv[i]) == MagickFalse)
1536 ThrowDisplayInvalidArgumentException(option,argv[i]);
1539 if (LocaleCompare(
"resize",option+1) == 0)
1544 if (i == (ssize_t) argc)
1545 ThrowDisplayException(OptionError,
"MissingArgument",option);
1546 if (IsGeometry(argv[i]) == MagickFalse)
1547 ThrowDisplayInvalidArgumentException(option,argv[i]);
1550 if (LocaleNCompare(
"respect-parentheses",option+1,17) == 0)
1552 respect_parentheses=(*option ==
'-') ? MagickTrue : MagickFalse;
1555 if (LocaleCompare(
"roll",option+1) == 0)
1560 if (i == (ssize_t) argc)
1561 ThrowDisplayException(OptionError,
"MissingArgument",option);
1562 if (IsGeometry(argv[i]) == MagickFalse)
1563 ThrowDisplayInvalidArgumentException(option,argv[i]);
1566 if (LocaleCompare(
"rotate",option+1) == 0)
1569 if (i == (ssize_t) argc)
1570 ThrowDisplayException(OptionError,
"MissingArgument",option);
1571 if (IsGeometry(argv[i]) == MagickFalse)
1572 ThrowDisplayInvalidArgumentException(option,argv[i]);
1575 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1579 if (LocaleCompare(
"sample",option+1) == 0)
1584 if (i == (ssize_t) argc)
1585 ThrowDisplayException(OptionError,
"MissingArgument",option);
1586 if (IsGeometry(argv[i]) == MagickFalse)
1587 ThrowDisplayInvalidArgumentException(option,argv[i]);
1590 if (LocaleCompare(
"sampling-factor",option+1) == 0)
1595 if (i == (ssize_t) argc)
1596 ThrowDisplayException(OptionError,
"MissingArgument",option);
1597 if (IsGeometry(argv[i]) == MagickFalse)
1598 ThrowDisplayInvalidArgumentException(option,argv[i]);
1601 if (LocaleCompare(
"scenes",option+1) == 0)
1606 if (i == (ssize_t) argc)
1607 ThrowDisplayException(OptionError,
"MissingArgument",option);
1608 if (IsSceneGeometry(argv[i],MagickFalse) == MagickFalse)
1609 ThrowDisplayInvalidArgumentException(option,argv[i]);
1612 if (LocaleCompare(
"seed",option+1) == 0)
1617 if (i == (ssize_t) argc)
1618 ThrowDisplayException(OptionError,
"MissingArgument",option);
1619 if (IsGeometry(argv[i]) == MagickFalse)
1620 ThrowDisplayInvalidArgumentException(option,argv[i]);
1623 if (LocaleCompare(
"segment",option+1) == 0)
1628 if (i == (ssize_t) argc)
1629 ThrowDisplayException(OptionError,
"MissingArgument",option);
1630 if (IsGeometry(argv[i]) == MagickFalse)
1631 ThrowDisplayInvalidArgumentException(option,argv[i]);
1634 if (LocaleCompare(
"set",option+1) == 0)
1637 if (i == (ssize_t) argc)
1638 ThrowDisplayException(OptionError,
"MissingArgument",option);
1642 if (i == (ssize_t) argc)
1643 ThrowDisplayException(OptionError,
"MissingArgument",option);
1646 if (LocaleCompare(
"sharpen",option+1) == 0)
1651 if (i == (ssize_t) argc)
1652 ThrowDisplayException(OptionError,
"MissingArgument",option);
1653 if (IsGeometry(argv[i]) == MagickFalse)
1654 ThrowDisplayInvalidArgumentException(option,argv[i]);
1657 if (LocaleCompare(
"shared-memory",option+1) == 0)
1659 resource_info.use_shared_memory= (*option ==
'-') ? MagickTrue :
1663 if (LocaleCompare(
"size",option+1) == 0)
1668 if (i == (ssize_t) argc)
1669 ThrowDisplayException(OptionError,
"MissingArgument",option);
1670 if (IsGeometry(argv[i]) == MagickFalse)
1671 ThrowDisplayInvalidArgumentException(option,argv[i]);
1674 if (LocaleCompare(
"strip",option+1) == 0)
1676 if (LocaleCompare(
"support",option+1) == 0)
1681 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1685 if (LocaleCompare(
"text-font",option+1) == 0)
1687 resource_info.text_font=(
char *) NULL;
1691 if (i == (ssize_t) argc)
1692 ThrowDisplayException(OptionError,
"MissingArgument",option);
1693 resource_info.text_font=XGetResourceClass(resource_database,
1694 GetClientName(),
"font",argv[i]);
1697 if (LocaleCompare(
"texture",option+1) == 0)
1702 if (i == (ssize_t) argc)
1703 ThrowDisplayException(OptionError,
"MissingArgument",option);
1706 if (LocaleCompare(
"threshold",option+1) == 0)
1711 if (i == (ssize_t) argc)
1712 ThrowDisplayException(OptionError,
"MissingArgument",option);
1713 if (IsGeometry(argv[i]) == MagickFalse)
1714 ThrowDisplayInvalidArgumentException(option,argv[i]);
1717 if (LocaleCompare(
"thumbnail",option+1) == 0)
1722 if (i == (ssize_t) argc)
1723 ThrowDisplayException(OptionError,
"MissingArgument",option);
1724 if (IsGeometry(argv[i]) == MagickFalse)
1725 ThrowDisplayInvalidArgumentException(option,argv[i]);
1728 if (LocaleCompare(
"title",option+1) == 0)
1730 resource_info.title=(
char *) NULL;
1734 if (i == (ssize_t) argc)
1735 ThrowDisplayException(OptionError,
"MissingArgument",option);
1736 resource_info.title=argv[i];
1739 if (LocaleCompare(
"transparent-color",option+1) == 0)
1744 if (i == (ssize_t) argc)
1745 ThrowDisplayException(OptionError,
"MissingArgument",option);
1748 if (LocaleCompare(
"treedepth",option+1) == 0)
1750 quantize_info->tree_depth=0;
1754 if (i == (ssize_t) argc)
1755 ThrowDisplayException(OptionError,
"MissingArgument",option);
1756 if (IsGeometry(argv[i]) == MagickFalse)
1757 ThrowDisplayInvalidArgumentException(option,argv[i]);
1758 quantize_info->tree_depth=StringToUnsignedLong(argv[i]);
1761 if (LocaleCompare(
"trim",option+1) == 0)
1763 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1767 if (LocaleCompare(
"update",option+1) == 0)
1769 resource_info.update=(
unsigned int) (*option ==
'-');
1773 if (i == (ssize_t) argc)
1774 ThrowDisplayException(OptionError,
"MissingArgument",option);
1775 if (IsGeometry(argv[i]) == MagickFalse)
1776 ThrowDisplayInvalidArgumentException(option,argv[i]);
1777 resource_info.update=(
unsigned int) StringToUnsignedLong(argv[i]);
1780 if (LocaleCompare(
"use-pixmap",option+1) == 0)
1782 resource_info.use_pixmap=(*option ==
'-') ? MagickTrue :
1786 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1790 if (LocaleCompare(
"verbose",option+1) == 0)
1792 if ((LocaleCompare(
"version",option+1) == 0) ||
1793 (LocaleCompare(
"-version",option+1) == 0))
1795 ListMagickVersion(stdout);
1798 if (LocaleCompare(
"visual",option+1) == 0)
1800 resource_info.visual_type=(
char *) NULL;
1804 if (i == (ssize_t) argc)
1805 ThrowDisplayException(OptionError,
"MissingArgument",option);
1806 resource_info.visual_type=argv[i];
1809 if (LocaleCompare(
"virtual-pixel",option+1) == 0)
1817 if (i == (ssize_t) argc)
1818 ThrowDisplayException(OptionError,
"MissingArgument",option);
1819 method=ParseCommandOption(MagickVirtualPixelOptions,MagickFalse,
1822 ThrowDisplayException(OptionError,
1823 "UnrecognizedVirtualPixelMethod",argv[i]);
1826 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1830 if (LocaleCompare(
"window",option+1) == 0)
1832 resource_info.window_id=(
char *) NULL;
1836 if (i == (ssize_t) argc)
1837 ThrowDisplayException(OptionError,
"MissingArgument",option);
1838 resource_info.window_id=argv[i];
1841 if (LocaleCompare(
"window-group",option+1) == 0)
1843 resource_info.window_group=(
char *) NULL;
1847 if (i == (ssize_t) argc)
1848 ThrowDisplayException(OptionError,
"MissingArgument",option);
1849 if (StringToDouble(argv[i],(
char **) NULL) != 0)
1850 resource_info.window_group=argv[i];
1853 if (LocaleCompare(
"write",option+1) == 0)
1855 resource_info.write_filename=(
char *) NULL;
1859 if (i == (ssize_t) argc)
1860 ThrowDisplayException(OptionError,
"MissingArgument",option);
1861 resource_info.write_filename=argv[i];
1862 if (IsPathAccessible(resource_info.write_filename) != MagickFalse)
1868 (void) FormatLocaleFile(stderr,
"Overwrite %s? ",
1869 resource_info.write_filename);
1870 p=fgets(answer,(
int)
sizeof(answer),stdin);
1872 if (((*answer !=
'y') && (*answer !=
'Y')))
1875 return(MagickFalse);
1880 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1885 ThrowDisplayException(OptionError,
"UnrecognizedOption",option);
1887 fire=(GetCommandOptionFlags(MagickCommandOptions,MagickFalse,option) &
1888 FireOptionFlag) == 0 ? MagickFalse : MagickTrue;
1889 if (fire != MagickFalse)
1890 FireImageStack(MagickFalse,MagickTrue,MagickTrue);
1893 ThrowDisplayException(OptionError,
"UnbalancedParenthesis",argv[i]);
1894 if (state & RetainColorsState)
1896 XRetainWindowColors(display,XRootWindow(display,XDefaultScreen(display)));
1897 (void) XSync(display,MagickFalse);
1900 return(status != 0 ? MagickTrue : MagickFalse);
1902WandExport MagickBooleanType DisplayImageCommand(ImageInfo *image_info,
1903 int wand_unused(argc),
char **wand_unused(argv),
1904 char **wand_unused(metadata),ExceptionInfo *exception)
1906 wand_unreferenced(argc);
1907 wand_unreferenced(argv);
1908 wand_unreferenced(metadata);
1909 (void) ThrowMagickException(exception,GetMagickModule(),MissingDelegateError,
1910 "DelegateLibrarySupportNotBuiltIn",
"'%s' (X11)",image_info->filename);
1911 return(DisplayUsage());