13ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/* 23ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 33ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 43ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 53ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 63ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% IIIII M M PPPP OOO RRRR TTTTT % 73ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% I MM MM P P O O R R T % 83ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% I M M M PPPP O O RRRR T % 93ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% I M M P O O R R T % 103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% IIIII M M P OOO R R T % 113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% Import Image from X11 Screen % 143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% Software Design % 16de984cdc3631106b1cbbb8d3972b76a0fc27e8e8cristy% Cristy % 173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% July 1992 % 183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 207ce65e7125a4e1df1a274ce373c537a9df9c16cdCristy% Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization % 213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% dedicated to making software imaging solutions freely available. % 223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% You may not use this file except in compliance with the License. You may % 243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% obtain a copy of the License at % 253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% http://www.imagemagick.org/script/license.php % 273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% Unless required by applicable law or agreed to in writing, software % 293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% distributed under the License is distributed on an "AS IS" BASIS, % 303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % 313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% See the License for the specific language governing permissions and % 323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% limitations under the License. % 333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% Use the import program to capture some or all of an X server screen and 373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% save the image to a file. 383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/ 403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/* 423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Include declarations. 433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/ 444c08aed51c5899665ade97263692328eea4af106cristy#include "MagickWand/studio.h" 454c08aed51c5899665ade97263692328eea4af106cristy#include "MagickWand/MagickWand.h" 464c08aed51c5899665ade97263692328eea4af106cristy#include "MagickWand/mogrify-private.h" 474c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/string-private.h" 48a43c34d9560fee3ba49ca12b9f9cdd69b0ae4bd3cristy#include "MagickCore/image-private.h" 497832dc2d904c471770087cce18a9a2d76c2216a3cristy#include "MagickCore/xwindow-private.h" 503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/* 523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy+ I m p o r t I m a g e C o m m a n d % 573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% ImportImageCommand() reads an image from any visible window on an X server 633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% and outputs it as an image file. You can capture a single window, the 643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% entire screen, or any rectangular portion of the screen. You can use the 653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% display utility for redisplay, printing, editing, formatting, archiving, 6679b5c337cb49374c3e2642044aa52eba1263f47aglennrp% image processing, etc. of the captured image. 673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% The target window can be specified by id, name, or may be selected by 693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% clicking the mouse in the desired window. If you press a button and then 703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% drag, a rectangle will form which expands and contracts as the mouse moves. 713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% To save the portion of the screen defined by the rectangle, just release 723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% the button. The keyboard bell is rung once at the beginning of the screen 733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% capture and twice when it completes. 743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% The format of the ImportImageCommand method is: 763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% MagickBooleanType ImportImageCommand(ImageInfo *image_info,int argc, 783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% char **argv,char **metadata,ExceptionInfo *exception) 793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% A description of each parameter follows: 813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% o image_info: the image info. 833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% o argc: the number of elements in the argument vector. 853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% o argv: A text array containing the command line arguments. 873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% o metadata: any metadata is returned here. 893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% o exception: return any errors or warnings in this structure. 913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/ 933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 943ed852eea50f9d4cd633efb8c2b054b8e33c253cristystatic MagickBooleanType ImportUsage(void) 953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy const char 973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy **p; 983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy static const char 1003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *miscellaneous[]= 1013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 1023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-debug events display copious debugging information", 1033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-help print program options", 1043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-list type print a list of supported option arguments", 1053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-log format format of debugging information", 1063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-version print version information", 1073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (char *) NULL 1083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy }, 1093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *operators[]= 1103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 1113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-annotate geometry text", 1123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy " annotate the image with text", 1133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-colors value preferred number of colors in the image", 1143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-crop geometry preferred size and location of the cropped image", 1153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-encipher filename convert plain pixels to cipher pixels", 116901f09dec8567f88ad6c73be08ce3c7043dd58a1cristy "-geometry geometry preferred size or location of the image", 1173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-help print program options", 1183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-monochrome transform image to black and white", 1193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-negate replace every pixel with its complementary color ", 1203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-repage geometry size and location of an image canvas", 1213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-quantize colorspace reduce colors in this colorspace", 1223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-resize geometry resize the image", 1233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-rotate degrees apply Paeth rotation to the image", 1243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-strip strip image of all profiles and comments", 1253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-thumbnail geometry create a thumbnail of the image", 1263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-transparent color make this color transparent within the image", 1273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-trim trim image edges", 1283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-type type image type", 1293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (char *) NULL 1303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy }, 1313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *settings[]= 1323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 1333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-adjoin join images into a single multi-image file", 134079bd9ea1776cb6f59270dfa407e0d2bcd606ddfcristy "-border include window border in the output image", 1353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-channel type apply option to select image channels", 1363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-colorspace type alternate image colorspace", 1373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-comment string annotate image with comment", 1383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-compress type type of pixel compression when writing the image", 1393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-define format:option", 1403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy " define one or more image format options", 1413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-density geometry horizontal and vertical density of the image", 1423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-depth value image depth", 1433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-descend obtain image by descending window hierarchy", 1443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-display server X server to contact", 1453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-dispose method layer disposal method", 1463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-dither method apply error diffusion to image", 1473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-delay value display the next image after pausing", 1483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-encipher filename convert plain pixels to cipher pixels", 1493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-endian type endianness (MSB or LSB) of the image", 1503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-encoding type text encoding type", 1513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-filter type use this filter when resizing an image", 1523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-format \"string\" output formatted image characteristics", 1533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-frame include window manager frame", 1543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-gravity direction which direction to gravitate towards", 1553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-identify identify the format and characteristics of the image", 1563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-interlace type None, Line, Plane, or Partition", 1573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-interpolate method pixel color interpolation method", 1583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-label string assign a label to an image", 1593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-limit type value Area, Disk, Map, or Memory resource limit", 1603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-monitor monitor progress", 1613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-page geometry size and location of an image canvas", 1621fbf9dc346dfd2ed26e7ed81fb02e598681e7bb2cristy "-pause seconds seconds delay between snapshots", 1633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-pointsize value font point size", 1643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-quality value JPEG/MIFF/PNG compression level", 1653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-quiet suppress all warning messages", 1663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-regard-warnings pay attention to warning messages", 1673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-respect-parentheses settings remain in effect until parenthesis boundary", 1683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-sampling-factor geometry", 1693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy " horizontal and vertical sampling factor", 1703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-scene value image scene number", 1713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-screen select image from root window", 1723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-seed value seed a new sequence of pseudo-random numbers", 1733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-set property value set an image property", 1743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-silent operate silently, i.e. don't ring any bells ", 1753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-snaps value number of screen snapshots", 176e9252c26b8f1dcf9d41023fb5918c2ce5e1f01c0cristy "-support factor resize support: > 1.0 is blurry, < 1.0 is sharp", 177d9a291985cb653d62a4e7c3b6aa3f9c4436d30ebcristy "-synchronize synchronize image to storage device", 178d9a291985cb653d62a4e7c3b6aa3f9c4436d30ebcristy "-taint declare the image as modified", 1793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-transparent-color color", 1803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy " transparent color", 1813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-treedepth value color tree depth", 1823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-verbose print detailed information about the image", 1833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-virtual-pixel method", 1843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy " Constant, Edge, Mirror, or Tile", 1853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "-window id select window with this id or name", 1863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (char *) NULL 1873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy }; 1883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1894f7a61361f38ef4d3eaae0c74b9964a57aee813acristy ListMagickVersion(stdout); 1903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) printf("Usage: %s [options ...] [ file ]\n", 1913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy GetClientName()); 1923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) printf("\nImage Settings:\n"); 1933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy for (p=settings; *p != (char *) NULL; p++) 1943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) printf(" %s\n",*p); 1953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) printf("\nImage Operators:\n"); 1963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy for (p=operators; *p != (char *) NULL; p++) 1973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) printf(" %s\n",*p); 1983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) printf("\nMiscellaneous Options:\n"); 1993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy for (p=miscellaneous; *p != (char *) NULL; p++) 2003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) printf(" %s\n",*p); 2013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) printf( 2023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "\nBy default, 'file' is written in the MIFF image format. To\n"); 2033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) printf( 2043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "specify a particular image format, precede the filename with an image\n"); 2053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) printf( 2063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "format name and a colon (i.e. ps:image) or specify the image type as\n"); 2073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) printf( 2083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "the filename suffix (i.e. image.ps). Specify 'file' as '-' for\n"); 2093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) printf("standard input or output.\n"); 2103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy return(MagickFalse); 2113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 2123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2133ed852eea50f9d4cd633efb8c2b054b8e33c253cristyWandExport MagickBooleanType ImportImageCommand(ImageInfo *image_info, 2143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy int argc,char **argv,char **wand_unused(metadata),ExceptionInfo *exception) 2153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 2163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#if defined(MAGICKCORE_X11_DELEGATE) 2173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#define DestroyImport() \ 2183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ \ 2193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy XDestroyResourceInfo(&resource_info); \ 2203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (display != (Display *) NULL) \ 2213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { \ 2223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy XCloseDisplay(display); \ 2233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy display=(Display *) NULL; \ 2243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } \ 2253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy DestroyImageStack(); \ 2263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (target_window != (char *) NULL) \ 2273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy target_window=DestroyString(target_window); \ 228bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy for (i=0; i < (ssize_t) argc; i++) \ 2293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]=DestroyString(argv[i]); \ 2303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv=(char **) RelinquishMagickMemory(argv); \ 2313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 2323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#define ThrowImportException(asperity,tag,option) \ 2333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ \ 234efe601ce9ea5ad34ad0e8ad6e61d9be9b148b2a3cristy (void) ThrowMagickException(exception,GetMagickModule(),asperity,tag,"`%s'", \ 2353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy option); \ 2363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy DestroyImport(); \ 2373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy return(MagickFalse); \ 2383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 2393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#define ThrowImportInvalidArgumentException(option,argument) \ 2403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ \ 2413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) ThrowMagickException(exception,GetMagickModule(),OptionError, \ 242e5b39652d8d21bc3940d83b8d6088d4070a8a34aanthony "InvalidArgument","'%s': %s",option,argument); \ 2433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy DestroyImport(); \ 2443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy return(MagickFalse); \ 2453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 2463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy char 2483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *filename, 2493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *option, 2503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *resource_value, 2513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *server_name, 2523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *target_window; 2533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Display 2553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *display; 2563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Image 2583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *image; 2593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ImageStack 2613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy image_stack[MaxImageStackDepth+1]; 2623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy MagickBooleanType 2643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy fire, 265ebbcfea9ab0a5066ff5f0b5257c9598ca77579d3cristy pend, 266ebbcfea9ab0a5066ff5f0b5257c9598ca77579d3cristy respect_parenthesis; 2673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy MagickStatusType 2693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy status; 2703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy QuantizeInfo 2723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *quantize_info; 2733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 274bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy register ssize_t 2753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i; 2763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2779d314ff2c17a77996c05413c2013880387e50f0ecristy ssize_t 2789d314ff2c17a77996c05413c2013880387e50f0ecristy j, 2799d314ff2c17a77996c05413c2013880387e50f0ecristy k, 2809d314ff2c17a77996c05413c2013880387e50f0ecristy snapshots; 2819d314ff2c17a77996c05413c2013880387e50f0ecristy 2823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy XImportInfo 2833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ximage_info; 2843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy XResourceInfo 2863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_info; 2873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy XrmDatabase 2893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_database; 2903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy /* 2923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Set defaults. 2933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy */ 2943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy assert(image_info != (ImageInfo *) NULL); 295e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy assert(image_info->signature == MagickCoreSignature); 2963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (image_info->debug != MagickFalse) 2973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) LogMagickEvent(TraceEvent,GetMagickModule(),"..."); 2983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy assert(exception != (ExceptionInfo *) NULL); 2993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (argc == 2) 3003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 3013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy option=argv[1]; 3023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if ((LocaleCompare("version",option+1) == 0) || 3033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (LocaleCompare("-version",option+1) == 0)) 3043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 3054f7a61361f38ef4d3eaae0c74b9964a57aee813acristy ListMagickVersion(stdout); 306df0b2915c254e43ac809a58d5bba39e57d16012eCristy return(MagickTrue); 3073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 3083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 3093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy display=(Display *) NULL; 3103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy j=1; 3113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy k=0; 3123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy NewImageStack(); 3133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy option=(char *) NULL; 3143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy pend=MagickFalse; 3153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_database=(XrmDatabase) NULL; 316ebbcfea9ab0a5066ff5f0b5257c9598ca77579d3cristy respect_parenthesis=MagickFalse; 3173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) ResetMagickMemory(&resource_info,0,sizeof(resource_info)); 3183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy server_name=(char *) NULL; 3193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy status=MagickTrue; 3203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy SetNotifyHandlers; 3213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy target_window=(char *) NULL; 3223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy /* 3233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Check for server name specified on the command line. 3243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy */ 3253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ReadCommandlLine(argc,&argv); 3263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy status=ExpandFilenames(&argc,&argv); 3273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (status == MagickFalse) 3283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(ResourceLimitError,"MemoryAllocationFailed", 3293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy GetExceptionMessage(errno)); 330bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy for (i=1; i < (ssize_t) argc; i++) 3313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 3323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy /* 3333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Check command line for server name. 3343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy */ 3353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy option=argv[i]; 3363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("display",option+1) == 0) 3373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 3383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy /* 3393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy User specified server name. 3403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy */ 3413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 342bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 3433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 3443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy server_name=argv[i]; 3453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 3463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if ((LocaleCompare("help",option+1) == 0) || 3473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (LocaleCompare("-help",option+1) == 0)) 3483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy return(ImportUsage()); 3493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 3503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy /* 3513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Get user defaults from X resource database. 3523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy */ 3533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy display=XOpenDisplay(server_name); 3543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (display == (Display *) NULL) 3553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(XServerError,"UnableToOpenXServer", 3563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy XDisplayName(server_name)); 3573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) XSetErrorHandler(XError); 3583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_database=XGetResourceDatabase(display,GetClientName()); 3593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy XGetImportInfo(&ximage_info); 3603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy XGetResourceInfo(image_info,resource_database,GetClientName(), 3613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy &resource_info); 3623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy quantize_info=resource_info.quantize_info; 3633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_value=XGetResourceInstance(resource_database,GetClientName(), 3643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "border","False"); 3652e4501b56bdc589397786ecc59f8c2d206547a36anthony ximage_info.borders=IsStringTrue(resource_value); 3663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_value=XGetResourceInstance(resource_database,GetClientName(), 3673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "delay","0"); 368e27293e706ca05b6b121e9512a83b16f7ad887f2cristy resource_info.delay=(unsigned int) StringToUnsignedLong(resource_value); 3693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy image_info->density=XGetResourceInstance(resource_database,GetClientName(), 3703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "density",(char *) NULL); 3713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_value=XGetResourceInstance(resource_database,GetClientName(), 37264057b049640be82cf952fa3e01282917270850ecristy "descend","False"); 3732e4501b56bdc589397786ecc59f8c2d206547a36anthony ximage_info.descend=IsStringTrue(resource_value); 3743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_value=XGetResourceInstance(resource_database,GetClientName(), 3753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "frame","False"); 3762e4501b56bdc589397786ecc59f8c2d206547a36anthony ximage_info.frame=IsStringTrue(resource_value); 3773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_value=XGetResourceInstance(resource_database,GetClientName(), 3783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "interlace","none"); 3793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy image_info->interlace=UndefinedInterlace; 3803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("None",resource_value) == 0) 3813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy image_info->interlace=NoInterlace; 3823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("Line",resource_value) == 0) 3833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy image_info->interlace=LineInterlace; 3843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("Plane",resource_value) == 0) 3853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy image_info->interlace=PlaneInterlace; 3863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("Partition",resource_value) == 0) 3873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy image_info->interlace=PartitionInterlace; 3883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (image_info->interlace == UndefinedInterlace) 3893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"Unrecognized interlace type", 3903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_value); 3913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy image_info->page=XGetResourceInstance(resource_database,GetClientName(), 3923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "pageGeometry",(char *) NULL); 3933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_value=XGetResourceInstance(resource_database,GetClientName(), 3943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "pause","0"); 395e27293e706ca05b6b121e9512a83b16f7ad887f2cristy resource_info.pause=(unsigned int) StringToUnsignedLong(resource_value); 3963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_value=XGetResourceInstance(resource_database,GetClientName(), 3973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "quality","85"); 398e27293e706ca05b6b121e9512a83b16f7ad887f2cristy image_info->quality=StringToUnsignedLong(resource_value); 3993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_value=XGetResourceInstance(resource_database,GetClientName(), 4003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "screen","False"); 4012e4501b56bdc589397786ecc59f8c2d206547a36anthony ximage_info.screen=IsStringTrue(resource_value); 4023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_value=XGetResourceInstance(resource_database,GetClientName(), 4033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "silent","False"); 4042e4501b56bdc589397786ecc59f8c2d206547a36anthony ximage_info.silent=IsStringTrue(resource_value); 4053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_value=XGetResourceInstance(resource_database,GetClientName(), 4063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "verbose","False"); 4072e4501b56bdc589397786ecc59f8c2d206547a36anthony image_info->verbose=IsStringTrue(resource_value); 4083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_value=XGetResourceInstance(resource_database,GetClientName(), 4093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy "dither","True"); 410cbda611068350bf4459f2dda1951f8823702e129cristy quantize_info->dither_method=IsStringTrue(resource_value) != MagickFalse ? 411cbda611068350bf4459f2dda1951f8823702e129cristy RiemersmaDitherMethod : NoDitherMethod; 4123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy snapshots=1; 4133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy status=MagickTrue; 4143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy filename=(char *) NULL; 4153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy /* 4163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Check command syntax. 4173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy */ 418bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy for (i=1; i < (ssize_t) argc; i++) 4193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 4203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy option=argv[i]; 4213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare(option,"(") == 0) 4223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 4233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy FireImageStack(MagickFalse,MagickTrue,pend); 4243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (k == MaxImageStackDepth) 4253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"ParenthesisNestedTooDeeply", 4263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy option); 4273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy PushImageStack(); 4283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy continue; 4293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 4303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare(option,")") == 0) 4313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 4323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy FireImageStack(MagickFalse,MagickTrue,MagickTrue); 4333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (k == 0) 4343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnableToParseExpression",option); 4353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy PopImageStack(); 4363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy continue; 4373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 438042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy if (IsCommandOption(option) == MagickFalse) 4393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 4403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Image 4413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *images; 4423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 443bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy size_t 4443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy scene; 4453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy /* 4473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Read image from X server. 4483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy */ 4493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy FireImageStack(MagickFalse,MagickFalse,pend); 4503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy filename=argv[i]; 4513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (target_window != (char *) NULL) 4523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) CopyMagickString(image_info->filename,target_window, 453151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy MagickPathExtent); 454bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy for (scene=0; scene < (size_t) MagickMax(snapshots,1); scene++) 4553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 45666387d2b5d18e31609c476f1a88f7fc0389dc73aCristy MagickDelay(1000*resource_info.pause); 4576710d8414f0ed06e4eaf9346366be72e2b4719efcristy images=XImportImage(image_info,&ximage_info,exception); 4583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy status&=(images != (Image *) NULL) && 4593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (exception->severity < ErrorException); 4603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (images == (Image *) NULL) 4613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy continue; 462151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy (void) CopyMagickString(images->filename,filename,MagickPathExtent); 463151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy (void) CopyMagickString(images->magick,"PS",MagickPathExtent); 4643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy images->scene=scene; 4653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy AppendImageStack(images); 4663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 4673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy continue; 4683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 4693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy pend=image != (Image *) NULL ? MagickTrue : MagickFalse; 4703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy switch(*(option+1)) 4713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 4723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'a': 4733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 4743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("adjoin",option+1) == 0) 4753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 4763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("annotate",option+1) == 0) 4773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 4783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 4793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 4803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 481e81f552f8ca2fc16632bd9830db3f93af07d514ccristy if (i == (ssize_t) argc) 4823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 4833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 4843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 485e81f552f8ca2fc16632bd9830db3f93af07d514ccristy if (i == (ssize_t) argc) 4863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 4873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 4883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 4893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 4903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 4913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 4923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'b': 4933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 4943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("border",option+1) == 0) 4953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 496151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy (void) CopyMagickString(argv[i]+1,"sans",MagickPathExtent); 4973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ximage_info.borders=(*option == '-') ? MagickTrue : MagickFalse; 4983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 4993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 5003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("bordercolor",option+1) == 0) 5013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 5023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 5033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 505bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 5063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 5073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 5093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 5103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 5113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'c': 5123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 5133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("cache",option+1) == 0) 5143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 5153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 5163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 518bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 5193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 5203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 5213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 5223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 5243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("channel",option+1) == 0) 5253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 526bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 5273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy channel; 5283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 5293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 5303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 532e81f552f8ca2fc16632bd9830db3f93af07d514ccristy if (i == (ssize_t) argc) 5333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 5343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy channel=ParseChannelOption(argv[i]); 5353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (channel < 0) 5363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedChannelType", 5373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 5383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 5403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("colors",option+1) == 0) 5413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 5423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy quantize_info->number_colors=0; 5433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 5443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 546bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 5473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 5483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 5493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 550e27293e706ca05b6b121e9512a83b16f7ad887f2cristy quantize_info->number_colors=StringToUnsignedLong(argv[i]); 5513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 5533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("colorspace",option+1) == 0) 5543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 555bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 5563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy colorspace; 5573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 5583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 5593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 561bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 5623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 563042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy colorspace=ParseCommandOption(MagickColorspaceOptions,MagickFalse, 5643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 5653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (colorspace < 0) 5663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedColorspace", 5673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 5683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 5703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("comment",option+1) == 0) 5713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 5723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 5733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 575bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 5763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 5773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy status=SetImageOption(image_info,"comment",argv[i]); 5783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (status == MagickFalse) 5793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",argv[i]); 5803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 5823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("compress",option+1) == 0) 5833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 584bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 5853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy compress; 5863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 5873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 5883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 590bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 5913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 592042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy compress=ParseCommandOption(MagickCompressOptions,MagickFalse, 5933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 5943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (compress < 0) 5953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedImageCompression", 5963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 5973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 5983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 5992287975e02162155f1500d91ccce6e0fde5de7c8cristy if (LocaleCompare("concurrent",option+1) == 0) 6002287975e02162155f1500d91ccce6e0fde5de7c8cristy break; 6013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("crop",option+1) == 0) 6023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 6033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 6043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 606bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 6073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 6083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 6093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 6103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 6123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 6133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 6143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'd': 6153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 6163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("debug",option+1) == 0) 6173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 618bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 6193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy event; 6203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 6213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 6223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 624bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 6253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 626042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy event=ParseCommandOption(MagickLogEventOptions,MagickFalse,argv[i]); 6273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (event < 0) 6283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedEventType",argv[i]); 6293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) SetLogEventMask(argv[i]); 6303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 6323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("define",option+1) == 0) 6333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 6343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 635bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 6363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 6373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 6383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 6393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy const char 6403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *define; 6413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 6423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy define=GetImageOption(image_info,argv[i]); 6433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (define == (char *) NULL) 6443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"NoSuchOption",argv[i]); 6453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 6473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 6493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("delay",option+1) == 0) 6503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 6513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 6523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 654bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 6553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 6563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 6573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 6583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy status=SetImageOption(image_info,"delay",argv[i]); 6593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (status == MagickFalse) 6603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",argv[i]); 6613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 6633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("density",option+1) == 0) 6643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 6653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 6663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 668bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 6693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 6703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 6713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 6723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 6743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("depth",option+1) == 0) 6753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 6763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 6773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 679bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 6803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 6813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 6823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 6833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 6853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("descend",option+1) == 0) 6863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 6873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ximage_info.descend=(*option == '-') ? MagickTrue : MagickFalse; 6883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 6903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("display",option+1) == 0) 6913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 6923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 6933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 695bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 6963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 6973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 6983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 6993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("dispose",option+1) == 0) 7003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 701bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 7023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy dispose; 7033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 7053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 7063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 707bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 7083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 709042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy dispose=ParseCommandOption(MagickDisposeOptions,MagickFalse,argv[i]); 7103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (dispose < 0) 7113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedDisposeMethod", 7123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 7133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 7143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 7153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("dither",option+1) == 0) 7163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 717bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 7183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy method; 7193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 720cbda611068350bf4459f2dda1951f8823702e129cristy quantize_info->dither_method=NoDitherMethod; 7213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 7223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 7233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 724bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 7253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 726042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy method=ParseCommandOption(MagickDitherOptions,MagickFalse,argv[i]); 7273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (method < 0) 7283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedDitherMethod", 7293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 7303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy quantize_info->dither_method=(DitherMethod) method; 7313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 7323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 7332287975e02162155f1500d91ccce6e0fde5de7c8cristy if (LocaleCompare("duration",option+1) == 0) 7342287975e02162155f1500d91ccce6e0fde5de7c8cristy { 7352287975e02162155f1500d91ccce6e0fde5de7c8cristy if (*option == '+') 7362287975e02162155f1500d91ccce6e0fde5de7c8cristy break; 7372287975e02162155f1500d91ccce6e0fde5de7c8cristy i++; 738e81f552f8ca2fc16632bd9830db3f93af07d514ccristy if (i == (ssize_t) argc) 7392287975e02162155f1500d91ccce6e0fde5de7c8cristy ThrowImportException(OptionError,"MissingArgument",option); 7402287975e02162155f1500d91ccce6e0fde5de7c8cristy if (IsGeometry(argv[i]) == MagickFalse) 7412287975e02162155f1500d91ccce6e0fde5de7c8cristy ThrowImportInvalidArgumentException(option,argv[i]); 7422287975e02162155f1500d91ccce6e0fde5de7c8cristy break; 7432287975e02162155f1500d91ccce6e0fde5de7c8cristy } 7443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 7453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 7463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'e': 7473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 7483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("encipher",option+1) == 0) 7493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 7503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 7513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 7523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 753e81f552f8ca2fc16632bd9830db3f93af07d514ccristy if (i == (ssize_t) argc) 7543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 7553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 7563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 7573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("encoding",option+1) == 0) 7583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 7593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 7603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 7613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 762bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 7633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 7643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 7653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 7663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("endian",option+1) == 0) 7673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 768bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 7693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy endian; 7703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 7723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 7733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 774bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 7753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 776042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy endian=ParseCommandOption(MagickEndianOptions,MagickFalse, 7773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 7783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (endian < 0) 7793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedEndianType", 7803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 7813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 7823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 7833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 7843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 7853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'f': 7863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 7873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("filter",option+1) == 0) 7883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 789bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 7903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy filter; 7913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 7933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 7943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 795e81f552f8ca2fc16632bd9830db3f93af07d514ccristy if (i == (ssize_t) argc) 7963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 797042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy filter=ParseCommandOption(MagickFilterOptions,MagickFalse,argv[i]); 7983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (filter < 0) 7993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedImageFilter", 8003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 8013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 8033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("frame",option+1) == 0) 8043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 805151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy (void) CopyMagickString(argv[i]+1,"sans0",MagickPathExtent); 8063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ximage_info.frame=(*option == '-') ? MagickTrue : MagickFalse; 8073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 8093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("format",option+1) == 0) 8103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 8113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 8123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 814e81f552f8ca2fc16632bd9830db3f93af07d514ccristy if (i == (ssize_t) argc) 8153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 8163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 8183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 8193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 8203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'g': 8213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 8223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("geometry",option+1) == 0) 8233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 8243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 8253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 827bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 8283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 8293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 8303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 8313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 8333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("gravity",option+1) == 0) 8343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 835bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 8363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy gravity; 8373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 8383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 8393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 841bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 8423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 843042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy gravity=ParseCommandOption(MagickGravityOptions,MagickFalse,argv[i]); 8443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (gravity < 0) 8453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedGravityType", 8463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 8473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 8493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 8503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 8513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'h': 8523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 8533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("help",option+1) == 0) 8543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 8563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 8573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'i': 8583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 8593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("identify",option+1) == 0) 8603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("interlace",option+1) == 0) 8623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 863bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 8643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy interlace; 8653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 8663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 8673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 869bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 8703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 871042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy interlace=ParseCommandOption(MagickInterlaceOptions,MagickFalse, 8723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 8733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (interlace < 0) 8743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedInterlaceType", 8753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 8763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 8783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("interpolate",option+1) == 0) 8793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 880bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 8813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy interpolate; 8823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 8833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 8843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 886bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 8873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 888042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy interpolate=ParseCommandOption(MagickInterpolateOptions,MagickFalse, 8893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 8903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (interpolate < 0) 8913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedInterpolateMethod", 8923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 8933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 8943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 8953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 8963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 8973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'l': 8983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 8993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("label",option+1) == 0) 9003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 9013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 9023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 9033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 904bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 9053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 9063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy status=SetImageOption(image_info,"label",argv[i]); 9073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (status == MagickFalse) 9083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",argv[i]); 9093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 9103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 9113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("limit",option+1) == 0) 9123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 9133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy char 9143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *p; 9153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 9163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy double 9173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy value; 9183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 919bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 9203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource; 9213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 9223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 9233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 9243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 925bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 9263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 927042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy resource=ParseCommandOption(MagickResourceOptions,MagickFalse, 9283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 9293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (resource < 0) 9303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedResourceType", 9313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 9323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 933bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 9343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 935dbdd0e35efc03c9bccda644f5407db38b7c17eeccristy value=StringToDouble(argv[i],&p); 936da16f16767eb31921af855f17bda465fffc4e000cristy (void) value; 9373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if ((p == argv[i]) && (LocaleCompare("unlimited",argv[i]) != 0)) 9383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 9393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 9403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 9413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("list",option+1) == 0) 9423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 943bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 9443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy list; 9453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 9463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 9473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 9483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 949bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 9503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 951042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy list=ParseCommandOption(MagickListOptions,MagickFalse,argv[i]); 9523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (list < 0) 9533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedListType",argv[i]); 954aeb2cbc4eb61cc6a04744db1dc52f5319c466e29cristy status=MogrifyImageInfo(image_info,(int) (i-j+1),(const char **) 9553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv+j,exception); 9563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy DestroyImport(); 95732ce2391bb7051ac53c7c3c25d3ad8f41836824dcristy return(status == 0 ? MagickTrue : MagickFalse); 9583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 9593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("log",option+1) == 0) 9603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 9613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 9623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 9633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 964bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if ((i == (ssize_t) argc) || (strchr(argv[i],'%') == (char *) NULL)) 9653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 9663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 9673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 9683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 9693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 9703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'm': 9713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 9723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("monitor",option+1) == 0) 9733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 9743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("monochrome",option+1) == 0) 9753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 9763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 9773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 9783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy quantize_info->number_colors=2; 9793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy quantize_info->colorspace=GRAYColorspace; 9803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 9813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 9823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 9833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 9843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'n': 9853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 9863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("negate",option+1) == 0) 9873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 9883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 9893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 9903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'p': 9913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 9923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("page",option+1) == 0) 9933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 9943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 9953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 9963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 997bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 9983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 9993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy status=SetImageOption(image_info,"page",argv[i]); 10003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (status == MagickFalse) 10013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",argv[i]); 10023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 10043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("pause",option+1) == 0) 10053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 10063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy resource_info.pause=0; 10073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 10083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1010bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 10113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 10123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 10133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 1014e27293e706ca05b6b121e9512a83b16f7ad887f2cristy resource_info.pause=(unsigned int) StringToUnsignedLong(argv[i]); 10153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 10173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("ping",option+1) == 0) 10183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; /* deprecated option */ 10193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("pointsize",option+1) == 0) 10203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 10213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 10223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1024bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 10253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 10263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 10273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 10283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 10303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 10313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 10323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'q': 10333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 10343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("quality",option+1) == 0) 10353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 10363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 10373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1039bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 10403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 10413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 10423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 10433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 10453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("quantize",option+1) == 0) 10463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 1047bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 10483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy colorspace; 10493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 10503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 10513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1053e81f552f8ca2fc16632bd9830db3f93af07d514ccristy if (i == (ssize_t) argc) 10543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 1055042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy colorspace=ParseCommandOption(MagickColorspaceOptions, 10563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy MagickFalse,argv[i]); 10573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (colorspace < 0) 10583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedColorspace", 10593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy argv[i]); 10603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 10623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("quiet",option+1) == 0) 10633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 10653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 10663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'r': 10673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 10683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("regard-warnings",option+1) == 0) 10693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("repage",option+1) == 0) 10713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 10723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 10733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1075e81f552f8ca2fc16632bd9830db3f93af07d514ccristy if (i == (ssize_t) argc) 10763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 10773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 10783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 10793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 10813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("resize",option+1) == 0) 10823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 10833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 10843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1086bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 10873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 10883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 10893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 10903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 10923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleNCompare("respect-parentheses",option+1,17) == 0) 10933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 10943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy respect_parenthesis=(*option == '-') ? MagickTrue : MagickFalse; 10953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 10963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 10973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("rotate",option+1) == 0) 10983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 10993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1100bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 11013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 11023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 11033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 11043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 11063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 11073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 11083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 's': 11093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 11103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("sampling-factor",option+1) == 0) 11113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 11123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 11133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1115bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 11163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 11173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 11183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 11193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 11213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("scene",option+1) == 0) 11223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 11233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 11243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1126bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 11273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 11283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 11293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 11303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 11323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("set",option+1) == 0) 11333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 11343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1135bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 11363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 11373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 11383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1140bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 11413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 11423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 11443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("screen",option+1) == 0) 11453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 11463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ximage_info.screen=(*option == '-') ? MagickTrue : MagickFalse; 11473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 11493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("seed",option+1) == 0) 11503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 11513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 11523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1154e81f552f8ca2fc16632bd9830db3f93af07d514ccristy if (i == (ssize_t) argc) 11553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 11563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 11573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 11583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 11603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("silent",option+1) == 0) 11613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 11623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ximage_info.silent=(*option == '-') ? MagickTrue : MagickFalse; 11633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 11653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("snaps",option+1) == 0) 11663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 1167151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy (void) CopyMagickString(argv[i]+1,"sans",MagickPathExtent); 11683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1169bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 11703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 11713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 11723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 117332c2aeaecd0abcb91039f999f270ca8ce439abd0cristy snapshots=(ssize_t) StringToLong(argv[i]); 11743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 11763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("strip",option+1) == 0) 11773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("support",option+1) == 0) 11793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 11803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; /* deprecated */ 11813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 1183d9a291985cb653d62a4e7c3b6aa3f9c4436d30ebcristy if (LocaleCompare("synchronize",option+1) == 0) 1184d9a291985cb653d62a4e7c3b6aa3f9c4436d30ebcristy break; 11853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 11863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 11873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 't': 11883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 1189d9a291985cb653d62a4e7c3b6aa3f9c4436d30ebcristy if (LocaleCompare("taint",option+1) == 0) 1190d9a291985cb653d62a4e7c3b6aa3f9c4436d30ebcristy break; 11914435c7126b65edeb26a29e89fa23aa6da9121ea5anthony if (LocaleCompare("thumbnail",option+1) == 0) 11923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 11933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 11943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 11953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1196bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 11973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 11983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 11993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 12003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 12023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("transparent",option+1) == 0) 12033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 12043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1205bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 12063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 12073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 12093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("transparent-color",option+1) == 0) 12103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 12113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 12123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1214e81f552f8ca2fc16632bd9830db3f93af07d514ccristy if (i == (ssize_t) argc) 12153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 12163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 12183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("treedepth",option+1) == 0) 12193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 12203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy quantize_info->tree_depth=0; 12213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 12223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1224bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 12253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 12263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (IsGeometry(argv[i]) == MagickFalse) 12273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportInvalidArgumentException(option,argv[i]); 1228e27293e706ca05b6b121e9512a83b16f7ad887f2cristy quantize_info->tree_depth=StringToUnsignedLong(argv[i]); 12293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 12313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("trim",option+1) == 0) 12323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("type",option+1) == 0) 12343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 1235bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy ssize_t 12363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy type; 12373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 12383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (*option == '+') 12393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1241bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 12423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 1243042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy type=ParseCommandOption(MagickTypeOptions,MagickFalse,argv[i]); 12443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (type < 0) 12453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedImageType",argv[i]); 12463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 12483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 12493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 12503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'w': 12513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 12523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy i++; 1253bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy if (i == (ssize_t) argc) 12543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingArgument",option); 12553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) CloneString(&target_window,argv[i]); 12563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 12583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case 'v': 12593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 12603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (LocaleCompare("verbose",option+1) == 0) 12613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if ((LocaleCompare("version",option+1) == 0) || 12633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (LocaleCompare("-version",option+1) == 0)) 12643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 12654f7a61361f38ef4d3eaae0c74b9964a57aee813acristy ListMagickVersion(stdout); 12663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 12683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 12693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 12703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy case '?': 12713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy break; 12723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy default: 12733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnrecognizedOption",option); 12743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 1275042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy fire=(GetCommandOptionFlags(MagickCommandOptions,MagickFalse,option) & 1276042ee78fa9004bf1ac6a95f09d9d1faca631dda1cristy FireOptionFlag) == 0 ? MagickFalse : MagickTrue; 12773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (fire != MagickFalse) 12783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy FireImageStack(MagickFalse,MagickTrue,MagickTrue); 12793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 12803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (k != 0) 12813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"UnbalancedParenthesis",argv[i]); 1282cee9711bbc334b5677d5ec4ea1cc70340d35ee35cristy if (i-- != (ssize_t) argc) 12833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingAnImageFilename",argv[i]); 12843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy if (image == (Image *) NULL) 12853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ThrowImportException(OptionError,"MissingAnImageFilename",argv[argc-1]); 12863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy FinalizeImageSettings(image_info,image,MagickTrue); 12873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy status&=WriteImages(image_info,image,filename,exception); 12883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy DestroyImport(); 12893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy return(status != 0 ? MagickTrue : MagickFalse); 12903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#else 12913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) argc; 12923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) argv; 12933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy (void) ThrowMagickException(exception,GetMagickModule(),MissingDelegateError, 1294e5b39652d8d21bc3940d83b8d6088d4070a8a34aanthony "DelegateLibrarySupportNotBuiltIn","'%s' (X11)",image_info->filename); 12953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy return(ImportUsage()); 12963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#endif 12973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 1298