\select@language {english} \contentsline {chapter}{Preface}{xi} \contentsline {part}{Part\ 1: Quick Start Guide}{1} \contentsline {title}{\numberline {1}Introduction}{3} \contentsline {author}{}{3} \contentsline {section}{\numberline {1.1}What is ImageMagick}{3} \contentsline {subsection}{\numberline {1.1.1}Command-line Utility}{3} \contentsline {subsection}{\numberline {1.1.2}Application Programming Interface}{3} \contentsline {subsection}{\numberline {1.1.3}Scripting Language}{3} \contentsline {subsection}{\numberline {1.1.4}General Purpose Imaging Solution}{3} \contentsline {section}{\numberline {1.2}Getting Help}{3} \contentsline {subsection}{\numberline {1.2.1}Web Site}{3} \contentsline {subsection}{\numberline {1.2.2}Mailing List}{3} \contentsline {subsection}{\numberline {1.2.3}Defect Tracking System}{3} \contentsline {title}{\numberline {2}Image Primer}{4} \contentsline {author}{}{4} \contentsline {section}{\numberline {2.1}What is an Image}{4} \contentsline {section}{\numberline {2.2}Image Depth}{4} \contentsline {section}{\numberline {2.3}Colormapped Images}{4} \contentsline {section}{\numberline {2.4}Compression}{4} \contentsline {subsection}{\numberline {2.4.1}Lossless}{4} \contentsline {subsection}{\numberline {2.4.2}Lossy}{4} \contentsline {section}{\numberline {2.5}Colorspace}{4} \contentsline {subsection}{\numberline {2.5.1}RGB}{4} \contentsline {subsection}{\numberline {2.5.2}CMYK}{4} \contentsline {section}{\numberline {2.6}Meta-Information}{4} \contentsline {section}{\numberline {2.7}Image Formats}{4} \contentsline {title}{\numberline {3}Image Tools}{5} \contentsline {author}{}{5} \contentsline {subsection}{\numberline {3.0.1}Identify}{5} \contentsline {subsection}{\numberline {3.0.2}Convert}{5} \contentsline {subsection}{\numberline {3.0.3}Mogrify}{5} \contentsline {subsection}{\numberline {3.0.4}Combine}{5} \contentsline {subsection}{\numberline {3.0.5}Display}{5} \contentsline {subsection}{\numberline {3.0.6}Animate}{5} \contentsline {title}{\numberline {4}Image Transformations}{6} \contentsline {author}{}{6} \contentsline {section}{\numberline {4.1}How to specify an image}{7} \contentsline {subsection}{\numberline {4.1.1}Implicitly}{7} \contentsline {subsection}{\numberline {4.1.2}Explicitly}{7} \contentsline {subsection}{\numberline {4.1.3}By URL}{7} \contentsline {section}{\numberline {4.2}Convert from one Image Format to Another}{7} \contentsline {section}{\numberline {4.3}Colormap Manipulation}{7} \contentsline {section}{\numberline {4.4}Resize an Image}{7} \contentsline {section}{\numberline {4.5}Crop}{7} \contentsline {section}{\numberline {4.6}Enhance}{7} \contentsline {section}{\numberline {4.7}Effects}{7} \contentsline {subsection}{\numberline {4.7.1}Special Effects}{7} \contentsline {subsection}{\numberline {4.7.2}Image Preview}{7} \contentsline {section}{\numberline {4.8}Decorate}{7} \contentsline {section}{\numberline {4.9}Annotate}{7} \contentsline {section}{\numberline {4.10}Draw}{7} \contentsline {section}{\numberline {4.11}Composite}{7} \contentsline {section}{\numberline {4.12}Meta-Information}{7} \contentsline {subsection}{\numberline {4.12.1}Comment}{7} \contentsline {section}{\numberline {4.13}Miscellanious Transforms}{7} \contentsline {subsection}{\numberline {4.13.1}Append}{7} \contentsline {title}{\numberline {5}Advanced ImageMagick Features}{8} \contentsline {author}{}{8} \contentsline {section}{\numberline {5.1}Working with Multi-resolution Images}{9} \contentsline {subsection}{\numberline {5.1.1}PCD}{9} \contentsline {subsection}{\numberline {5.1.2}PTIF}{9} \contentsline {section}{\numberline {5.2}Working with an Image Sequence}{9} \contentsline {subsection}{\numberline {5.2.1}Animation}{9} \contentsline {subsection}{\numberline {5.2.2}Delay}{9} \contentsline {subsection}{\numberline {5.2.3}Loop}{9} \contentsline {section}{\numberline {5.3}Working with a Group of Images}{9} \contentsline {section}{\numberline {5.4}Working with Raw Images}{9} \contentsline {subsection}{\numberline {5.4.1}Size}{9} \contentsline {subsection}{\numberline {5.4.2}Depth}{9} \contentsline {subsection}{\numberline {5.4.3}Interlace}{9} \contentsline {section}{\numberline {5.5}Using ImageMagick from a Web Browser}{9} \contentsline {part}{Part\ 2: Installation And Administration Guide}{11} \contentsline {title}{\numberline {6}C Application Programming Interface}{13} \contentsline {author}{}{13} \contentsline {section}{\numberline {6.1}Working with Blobs}{13} \contentsline {section}{\numberline {6.2}Working with Threads}{13} \contentsline {subsection}{\numberline {6.2.1}Posix}{13} \contentsline {subsection}{\numberline {6.2.2}Windows}{13} \contentsline {title}{\numberline {7}C++ Application Programming Interface}{14} \contentsline {author}{}{14} \contentsline {section}{\numberline {7.1}Working with Blobs}{14} \contentsline {section}{\numberline {7.2}Working with Threads}{14} \contentsline {subsection}{\numberline {7.2.1}Posix}{14} \contentsline {subsection}{\numberline {7.2.2}Windows}{14} \contentsline {title}{\numberline {8}Perl Application Programming Interface}{15} \contentsline {author}{}{15} \contentsline {section}{\numberline {8.1}Background}{15} \contentsline {title}{\numberline {9}PHP Application Programming Interface}{16} \contentsline {author}{}{16} \contentsline {section}{\numberline {9.1}Background}{16} \contentsline {title}{\numberline {10}Other Application Programming Interfaces}{17} \contentsline {author}{}{17} \contentsline {section}{\numberline {10.1}Java}{17} \contentsline {section}{\numberline {10.2}Python}{17} \contentsline {section}{\numberline {10.3}ImageMagick Integration Project}{17} \contentsline {part}{Part\ 3: User's Guide}{19} \contentsline {title}{\numberline {11}Image Channels}{21} \contentsline {author}{}{21} \contentsline {section}{\numberline {11.1}Working with Image Channels}{21} \contentsline {title}{\numberline {12}Image Painting}{22} \contentsline {author}{}{22} \contentsline {section}{\numberline {12.1}Image Painting}{22} \contentsline {subsection}{\numberline {12.1.1}Paint Type}{22} \contentsline {subsubsection}{Color}{22} \contentsline {subsubsection}{Matte}{22} \contentsline {subsection}{\numberline {12.1.2}Paint Method}{22} \contentsline {subsubsection}{Floodfill}{22} \contentsline {subsubsection}{Point}{22} \contentsline {subsubsection}{Replace}{22} \contentsline {subsubsection}{FillToBorder}{22} \contentsline {subsubsection}{Reset}{22} \contentsline {subsection}{\numberline {12.1.3}Fuzz Factor}{22} \contentsline {title}{\numberline {13}Color Profiles}{23} \contentsline {author}{}{23} \contentsline {section}{\numberline {13.1}Working with Color Profiles}{23} \contentsline {title}{\numberline {14}Image Drawing}{24} \contentsline {author}{}{24} \contentsline {section}{\numberline {14.1}SVG}{24} \contentsline {section}{\numberline {14.2}MVG}{24} \contentsline {part}{Part\ 4: Application Programming Interface}{25} \contentsline {title}{\numberline {15}Installing from Binary}{27} \contentsline {author}{}{27} \contentsline {section}{\numberline {15.1}Downloading}{27} \contentsline {subsection}{\numberline {15.1.1}web}{27} \contentsline {subsection}{\numberline {15.1.2}ftp}{27} \contentsline {section}{\numberline {15.2}Linux RPM}{27} \contentsline {section}{\numberline {15.3}Windows}{27} \contentsline {section}{\numberline {15.4}VMS}{27} \contentsline {section}{\numberline {15.5}Unix}{27} \contentsline {section}{\numberline {15.6}Other}{27} \contentsline {title}{\numberline {16}Installing from Source}{28} \contentsline {author}{}{28} \contentsline {section}{\numberline {16.1}Downloading}{28} \contentsline {subsection}{\numberline {16.1.1}FTP}{28} \contentsline {subsection}{\numberline {16.1.2}CVS}{28} \contentsline {section}{\numberline {16.2}Unix}{28} \contentsline {subsection}{\numberline {16.2.1}Configure}{28} \contentsline {subsection}{\numberline {16.2.2}Modules}{28} \contentsline {section}{\numberline {16.3}Windows}{28} \contentsline {subsection}{\numberline {16.3.1}Configure}{28} \contentsline {subsection}{\numberline {16.3.2}Modules}{28} \contentsline {section}{\numberline {16.4}Macintosh}{28} \contentsline {section}{\numberline {16.5}VMS}{28} \contentsline {title}{\numberline {17}Customizing ImageMagick}{29} \contentsline {author}{}{29} \contentsline {section}{\numberline {17.1}Image Depth}{29} \contentsline {subsection}{\numberline {17.1.1}8-bit}{29} \contentsline {subsection}{\numberline {17.1.2}16-bit}{29} \contentsline {section}{\numberline {17.2}Image Cache}{29} \contentsline {subsection}{\numberline {17.2.1}Persistent Cache}{29} \contentsline {section}{\numberline {17.3}Delegates}{29} \contentsline {subsection}{\numberline {17.3.1}Library Delegates}{29} \contentsline {subsection}{\numberline {17.3.2}Delegates.mgk}{29} \contentsline {section}{\numberline {17.4}magic.mgk}{29} \contentsline {part}{Part\ 5: Reference Manual}{31} \contentsline {title}{\numberline {18}Supported Image Formats}{33} \contentsline {author}{}{33} \contentsline {title}{\numberline {19}Command-line Options}{34} \contentsline {author}{}{34} \contentsline {title}{\numberline {20}C API Methods}{35} \contentsline {author}{}{35} \contentsline {section}{\numberline {20.1}Methods to Constitute an Image}{35} \contentsline {subsection}{\numberline {20.1.1}ConstituteImage}{35} \contentsline {subsection}{\numberline {20.1.2}DispatchImage}{36} \contentsline {subsection}{\numberline {20.1.3}PingImage}{36} \contentsline {subsection}{\numberline {20.1.4}ReadImage}{36} \contentsline {subsection}{\numberline {20.1.5}ReadImages}{37} \contentsline {subsection}{\numberline {20.1.6}WriteImage}{37} \contentsline {section}{\numberline {20.2}ImageMagick Image Methods}{37} \contentsline {subsection}{\numberline {20.2.1}AllocateImage}{37} \contentsline {subsection}{\numberline {20.2.2}AllocateImageColormap}{38} \contentsline {subsection}{\numberline {20.2.3}AllocateNextImage}{38} \contentsline {subsection}{\numberline {20.2.4}AnimateImages}{38} \contentsline {subsection}{\numberline {20.2.5}AppendImages}{39} \contentsline {subsection}{\numberline {20.2.6}AverageImages}{39} \contentsline {subsection}{\numberline {20.2.7}ChannelImage}{39} \contentsline {subsection}{\numberline {20.2.8}CloneImage}{39} \contentsline {subsection}{\numberline {20.2.9}CloneImageInfo}{40} \contentsline {subsection}{\numberline {20.2.10}CompositeImage}{40} \contentsline {subsection}{\numberline {20.2.11}CycleColormapImage}{40} \contentsline {subsection}{\numberline {20.2.12}DescribeImage}{41} \contentsline {subsection}{\numberline {20.2.13}DestroyImage}{41} \contentsline {subsection}{\numberline {20.2.14}DestroyImageInfo}{41} \contentsline {subsection}{\numberline {20.2.15}DestroyImages}{41} \contentsline {subsection}{\numberline {20.2.16}DisplayImages}{41} \contentsline {subsection}{\numberline {20.2.17}GetImageBoundingBox}{42} \contentsline {subsection}{\numberline {20.2.18}GetImageDepth}{42} \contentsline {subsection}{\numberline {20.2.19}GetImageInfo}{42} \contentsline {subsection}{\numberline {20.2.20}GetImageType}{42} \contentsline {subsection}{\numberline {20.2.21}GetNextImage}{42} \contentsline {subsection}{\numberline {20.2.22}GetNumberScenes}{43} \contentsline {subsection}{\numberline {20.2.23}GetPageInfo}{43} \contentsline {subsection}{\numberline {20.2.24}GetPixelPacket}{43} \contentsline {subsection}{\numberline {20.2.25}IsGeometry}{43} \contentsline {subsection}{\numberline {20.2.26}IsImagesEqual}{43} \contentsline {subsection}{\numberline {20.2.27}IsImageTainted}{44} \contentsline {subsection}{\numberline {20.2.28}IsSubimage}{44} \contentsline {subsection}{\numberline {20.2.29}ListToGroupImage}{44} \contentsline {subsection}{\numberline {20.2.30}MogrifyImage}{45} \contentsline {subsection}{\numberline {20.2.31}MogrifyImages}{45} \contentsline {subsection}{\numberline {20.2.32}MosaicImages}{45} \contentsline {subsection}{\numberline {20.2.33}ParseImageGeometry}{46} \contentsline {subsection}{\numberline {20.2.34}RGBTransformImage}{46} \contentsline {subsection}{\numberline {20.2.35}SetImage}{46} \contentsline {subsection}{\numberline {20.2.36}SetImageDepth}{47} \contentsline {subsection}{\numberline {20.2.37}SetImageInfo}{47} \contentsline {subsection}{\numberline {20.2.38}SetImageOpacity}{47} \contentsline {subsection}{\numberline {20.2.39}SetImageType}{47} \contentsline {subsection}{\numberline {20.2.40}SortColormapByIntentsity}{48} \contentsline {subsection}{\numberline {20.2.41}SyncImage}{48} \contentsline {subsection}{\numberline {20.2.42}TextureImage}{48} \contentsline {subsection}{\numberline {20.2.43}TransformRGBImage}{48} \contentsline {subsection}{\numberline {20.2.44}TransmitImage}{49} \contentsline {section}{\numberline {20.3}Methods to Resize an Image}{49} \contentsline {subsection}{\numberline {20.3.1}MagnifyImage}{49} \contentsline {subsection}{\numberline {20.3.2}MinifyImage}{49} \contentsline {subsection}{\numberline {20.3.3}ResizeImage}{50} \contentsline {subsection}{\numberline {20.3.4}SampleImage}{50} \contentsline {subsection}{\numberline {20.3.5}ScaleImage}{51} \contentsline {subsection}{\numberline {20.3.6}ZoomImage}{51} \contentsline {section}{\numberline {20.4}Methods to Transform an Image}{52} \contentsline {subsection}{\numberline {20.4.1}ChopImage}{52} \contentsline {subsection}{\numberline {20.4.2}CoalesceImages}{52} \contentsline {subsection}{\numberline {20.4.3}CropImage}{52} \contentsline {subsection}{\numberline {20.4.4}DeconstructImages}{53} \contentsline {subsection}{\numberline {20.4.5}FlipImage}{53} \contentsline {subsection}{\numberline {20.4.6}FlopImage}{53} \contentsline {subsection}{\numberline {20.4.7}ProfileImage}{53} \contentsline {subsection}{\numberline {20.4.8}RollImage}{54} \contentsline {subsection}{\numberline {20.4.9}TransformImage}{54} \contentsline {section}{\numberline {20.5}Methods to Draw on an Image}{55} \contentsline {subsection}{\numberline {20.5.1}CloneDrawInfo}{55} \contentsline {subsection}{\numberline {20.5.2}ColorFloodfillImage}{55} \contentsline {subsection}{\numberline {20.5.3}DestroyDrawInfo}{55} \contentsline {subsection}{\numberline {20.5.4}DrawImage}{55} \contentsline {subsection}{\numberline {20.5.5}GetDrawInfo}{56} \contentsline {subsection}{\numberline {20.5.6}MatteFloodfillImage}{56} \contentsline {subsection}{\numberline {20.5.7}OpaqueImage}{56} \contentsline {subsection}{\numberline {20.5.8}TransparentImage}{56} \contentsline {section}{\numberline {20.6}Methods to Annotate an Image}{57} \contentsline {subsection}{\numberline {20.6.1}AnnotateImage}{57} \contentsline {subsection}{\numberline {20.6.2}GetTypeMetrics}{57} \contentsline {section}{\numberline {20.7}Methods to Count the Colors in an Image}{57} \contentsline {subsection}{\numberline {20.7.1}CompressColormap}{57} \contentsline {subsection}{\numberline {20.7.2}GetNumberColors}{58} \contentsline {subsection}{\numberline {20.7.3}IsGrayImage}{58} \contentsline {subsection}{\numberline {20.7.4}IsMonochromeImage}{58} \contentsline {subsection}{\numberline {20.7.5}IsOpaqueImage}{58} \contentsline {subsection}{\numberline {20.7.6}IsPseudoClass}{59} \contentsline {subsection}{\numberline {20.7.7}ListColors}{59} \contentsline {subsection}{\numberline {20.7.8}QueryColorDatabase}{59} \contentsline {subsection}{\numberline {20.7.9}QueryColorName}{59} \contentsline {section}{\numberline {20.8}ImageMagick Image Decoration Methods}{60} \contentsline {subsection}{\numberline {20.8.1}BorderImage}{60} \contentsline {subsection}{\numberline {20.8.2}FrameImage}{60} \contentsline {subsection}{\numberline {20.8.3}RaiseImage}{61} \contentsline {section}{\numberline {20.9}Methods to Create a Montage.}{61} \contentsline {subsection}{\numberline {20.9.1}CloneMontageInfo}{61} \contentsline {subsection}{\numberline {20.9.2}DestroyMontageInfo}{61} \contentsline {subsection}{\numberline {20.9.3}GetMontageInfo}{61} \contentsline {subsection}{\numberline {20.9.4}MontageImages}{62} \contentsline {section}{\numberline {20.10}ImageMagick Image Effects Methods}{62} \contentsline {subsection}{\numberline {20.10.1}AddNoiseImage}{62} \contentsline {subsection}{\numberline {20.10.2}BlurImage}{62} \contentsline {subsection}{\numberline {20.10.3}ColorizeImage}{63} \contentsline {subsection}{\numberline {20.10.4}ConvolveImage}{64} \contentsline {subsection}{\numberline {20.10.5}DespeckleImage}{64} \contentsline {subsection}{\numberline {20.10.6}EdgeImage}{64} \contentsline {subsection}{\numberline {20.10.7}EmbossImage}{65} \contentsline {subsection}{\numberline {20.10.8}EnhanceImage}{65} \contentsline {subsection}{\numberline {20.10.9}GaussianBlurImage}{66} \contentsline {subsection}{\numberline {20.10.10}ImplodeImage}{66} \contentsline {subsection}{\numberline {20.10.11}MedianFilterImage}{66} \contentsline {subsection}{\numberline {20.10.12}MorphImages}{67} \contentsline {subsection}{\numberline {20.10.13}OilPaintImage}{67} \contentsline {subsection}{\numberline {20.10.14}PlasmaImage}{67} \contentsline {subsection}{\numberline {20.10.15}ReduceNoiseImage}{68} \contentsline {subsection}{\numberline {20.10.16}ShadeImage}{68} \contentsline {subsection}{\numberline {20.10.17}SharpenImage}{68} \contentsline {subsection}{\numberline {20.10.18}SolarizeImage}{69} \contentsline {subsection}{\numberline {20.10.19}SpreadImage}{69} \contentsline {subsection}{\numberline {20.10.20}SteganoImage}{69} \contentsline {subsection}{\numberline {20.10.21}StereoImage}{70} \contentsline {subsection}{\numberline {20.10.22}SwirlImage}{70} \contentsline {subsection}{\numberline {20.10.23}ThresholdImage}{70} \contentsline {subsection}{\numberline {20.10.24}UnsharpMaskImage}{70} \contentsline {subsection}{\numberline {20.10.25}WaveImage}{71} \contentsline {section}{\numberline {20.11}Methods to Enhance an Image}{71} \contentsline {subsection}{\numberline {20.11.1}ContrastImage}{71} \contentsline {subsection}{\numberline {20.11.2}EqualizeImage}{71} \contentsline {subsection}{\numberline {20.11.3}GammaImage}{72} \contentsline {subsection}{\numberline {20.11.4}ModulateImage}{72} \contentsline {subsection}{\numberline {20.11.5}MotionBlurImage}{72} \contentsline {subsection}{\numberline {20.11.6}NegateImage}{72} \contentsline {subsection}{\numberline {20.11.7}NormalizeImage}{73} \contentsline {section}{\numberline {20.12}Methods to Reduce the Number of Unique Colors in an Image}{73} \contentsline {subsection}{\numberline {20.12.1}CloneQuantizeInfo}{73} \contentsline {subsection}{\numberline {20.12.2}DestroyQuantizeInfo}{73} \contentsline {subsection}{\numberline {20.12.3}GetQuantizeInfo}{73} \contentsline {subsection}{\numberline {20.12.4}MapImage}{74} \contentsline {subsection}{\numberline {20.12.5}MapImages}{74} \contentsline {subsection}{\numberline {20.12.6}QuantizationError}{74} \contentsline {subsection}{\numberline {20.12.7}QuantizeImage}{75} \contentsline {subsection}{\numberline {20.12.8}QuantizeImages}{75} \contentsline {section}{\numberline {20.13}Methods to Segment an Image with Thresholding Fuzzy c-Means}{75} \contentsline {subsection}{\numberline {20.13.1}SegmentImage}{75} \contentsline {section}{\numberline {20.14}Methods to Shear or Rotate an Image by an Arbitrary Angle}{76} \contentsline {subsection}{\numberline {20.14.1}RotateImage}{76} \contentsline {subsection}{\numberline {20.14.2}ShearImage}{76} \contentsline {section}{\numberline {20.15}Methods to Compute a Digital Signature for an Image}{77} \contentsline {subsection}{\numberline {20.15.1}SignatureImage}{77} \contentsline {section}{\numberline {20.16}Image Pixel FIFO}{77} \contentsline {subsection}{\numberline {20.16.1}ReadStream}{77} \contentsline {subsection}{\numberline {20.16.2}WriteStream}{78} \contentsline {section}{\numberline {20.17}Image Text Attributes Methods}{78} \contentsline {subsection}{\numberline {20.17.1}DestroyImageAttributes}{78} \contentsline {subsection}{\numberline {20.17.2}GetImageAttribute}{78} \contentsline {subsection}{\numberline {20.17.3}GetImageInfoAttribute}{79} \contentsline {subsection}{\numberline {20.17.4}SetImageAttribute}{79} \contentsline {subsection}{\numberline {20.17.5}StoreImageAttribute}{79} \contentsline {section}{\numberline {20.18}Methods to Get or Set Image Pixels}{79} \contentsline {subsection}{\numberline {20.18.1}ClosePixelCache}{79} \contentsline {subsection}{\numberline {20.18.2}DestroyPixelCache}{80} \contentsline {subsection}{\numberline {20.18.3}GetIndexesFromCache}{80} \contentsline {subsection}{\numberline {20.18.4}GetOnePixelFromCache}{80} \contentsline {subsection}{\numberline {20.18.5}GetPixelCache}{80} \contentsline {subsection}{\numberline {20.18.6}GetPixelsFromCache}{81} \contentsline {subsection}{\numberline {20.18.7}SetPixelCache}{81} \contentsline {subsection}{\numberline {20.18.8}SyncPixelCache}{81} \contentsline {subsection}{\numberline {20.18.9}WriteCacheInfo}{82} \contentsline {section}{\numberline {20.19}Methods to Read or Write Binary Large Objects}{82} \contentsline {subsection}{\numberline {20.19.1}BlobToImage}{82} \contentsline {subsection}{\numberline {20.19.2}DestroyBlobInfo}{82} \contentsline {subsection}{\numberline {20.19.3}GetBlobInfo}{82} \contentsline {subsection}{\numberline {20.19.4}ImageToBlob}{83} \contentsline {subsection}{\numberline {20.19.5}SetBlobQuantum}{83} \contentsline {section}{\numberline {20.20}Methods to Read or List ImageMagick Image formats}{83} \contentsline {subsection}{\numberline {20.20.1}DestroyMagickInfo}{83} \contentsline {subsection}{\numberline {20.20.2}GetImageMagick}{83} \contentsline {subsection}{\numberline {20.20.3}GetMagickConfigurePath}{84} \contentsline {subsection}{\numberline {20.20.4}GetMagickInfo}{84} \contentsline {subsection}{\numberline {20.20.5}GetMagickVersion}{84} \contentsline {subsection}{\numberline {20.20.6}ListMagickInfo}{84} \contentsline {subsection}{\numberline {20.20.7}MagickIncarnate}{85} \contentsline {subsection}{\numberline {20.20.8}RegisterMagickInfo}{85} \contentsline {subsection}{\numberline {20.20.9}SetMagickInfo}{85} \contentsline {subsection}{\numberline {20.20.10}UnregisterMagickInfo}{85} \contentsline {section}{\numberline {20.21}ImageMagick Error Methods}{86} \contentsline {subsection}{\numberline {20.21.1}CatchImageException}{86} \contentsline {subsection}{\numberline {20.21.2}DestroyExceptionInfo}{86} \contentsline {subsection}{\numberline {20.21.3}GetExceptionInfo}{86} \contentsline {subsection}{\numberline {20.21.4}GetImageException}{86} \contentsline {subsection}{\numberline {20.21.5}MagickError}{87} \contentsline {subsection}{\numberline {20.21.6}MagickWarning}{87} \contentsline {subsection}{\numberline {20.21.7}SetErrorHandler}{87} \contentsline {subsection}{\numberline {20.21.8}SetWarningHandler}{87} \contentsline {subsection}{\numberline {20.21.9}ThrowException}{88} \contentsline {section}{\numberline {20.22}ImageMagick Memory Allocation Methods}{88} \contentsline {subsection}{\numberline {20.22.1}AcquireMemory}{88} \contentsline {subsection}{\numberline {20.22.2}LiberateMemory}{88} \contentsline {subsection}{\numberline {20.22.3}ReacquireMemory}{88} \contentsline {section}{\numberline {20.23}ImageMagick Progress Monitor Methods}{89} \contentsline {subsection}{\numberline {20.23.1}MagickMonitor}{89} \contentsline {subsection}{\numberline {20.23.2}SetMonitorHandler}{89} \contentsline {section}{\numberline {20.24}Methods to Interactively Animate an Image Sequence}{89} \contentsline {subsection}{\numberline {20.24.1}XAnimateBackgroundImage}{89} \contentsline {subsection}{\numberline {20.24.2}XAnimateImage}{89} \contentsline {section}{\numberline {20.25}Methods to Interactively Display and Edit an Image}{90} \contentsline {subsection}{\numberline {20.25.1}XDisplayBackgroundImage}{90} \contentsline {subsection}{\numberline {20.25.2}XDisplayImage}{90} \contentsline {section}{\numberline {20.26}ImageMagick Cache Views Methods}{91} \contentsline {subsection}{\numberline {20.26.1}CloseCacheView}{91} \contentsline {subsection}{\numberline {20.26.2}GetCacheView}{91} \contentsline {subsection}{\numberline {20.26.3}GetCacheViewIndexes}{91} \contentsline {subsection}{\numberline {20.26.4}GetCacheViewPixels}{91} \contentsline {subsection}{\numberline {20.26.5}OpenCacheView}{92} \contentsline {subsection}{\numberline {20.26.6}SetCacheView}{92} \contentsline {subsection}{\numberline {20.26.7}SyncCacheView}{92} \contentsline {section}{\numberline {20.27}API Structures}{92} \contentsline {subsection}{\numberline {20.27.1}AffineMatrix}{92} \contentsline {subsection}{\numberline {20.27.2}ColorPacket}{93} \contentsline {subsection}{\numberline {20.27.3}DrawInfo}{93} \contentsline {subsection}{\numberline {20.27.4}ExceptionInfo}{94} \contentsline {subsection}{\numberline {20.27.5}Image}{95} \contentsline {subsection}{\numberline {20.27.6}ImageAttribute}{99} \contentsline {subsection}{\numberline {20.27.7}ImageInfo}{99} \contentsline {subsection}{\numberline {20.27.8}MagickInfo}{102} \contentsline {subsection}{\numberline {20.27.9}PixelPacket}{103} \contentsline {subsection}{\numberline {20.27.10}ProfileInfo}{103} \contentsline {subsection}{\numberline {20.27.11}RectangleInfo}{104} \contentsline {section}{\numberline {20.28}API Enumerations}{104} \contentsline {subsection}{\numberline {20.28.1}CacheType}{104} \contentsline {subsection}{\numberline {20.28.2}ChannelType}{104} \contentsline {subsection}{\numberline {20.28.3}ClassType}{105} \contentsline {subsection}{\numberline {20.28.4}ColorspaceType}{105} \contentsline {subsection}{\numberline {20.28.5}CompositeOperator}{106} \contentsline {subsection}{\numberline {20.28.6}CompressionType}{108} \contentsline {subsection}{\numberline {20.28.7}DecorationType}{109} \contentsline {subsection}{\numberline {20.28.8}ExceptionType}{109} \contentsline {subsection}{\numberline {20.28.9}FilterTypes}{109} \contentsline {subsection}{\numberline {20.28.10}GeometryFlags}{110} \contentsline {subsection}{\numberline {20.28.11}GravityType}{110} \contentsline {subsection}{\numberline {20.28.12}ImageType}{110} \contentsline {subsection}{\numberline {20.28.13}InterlaceType}{111} \contentsline {subsection}{\numberline {20.28.14}LineCap}{112} \contentsline {subsection}{\numberline {20.28.15}LineJoin}{112} \contentsline {subsection}{\numberline {20.28.16}MapMode}{112} \contentsline {subsection}{\numberline {20.28.17}MontageMode}{112} \contentsline {subsection}{\numberline {20.28.18}NoiseType}{112} \contentsline {subsection}{\numberline {20.28.19}PaintMethod}{112} \contentsline {subsection}{\numberline {20.28.20}ProfileType}{113} \contentsline {subsection}{\numberline {20.28.21}PreviewType}{113} \contentsline {subsection}{\numberline {20.28.22}PrimitiveType}{113} \contentsline {subsection}{\numberline {20.28.23}PrimitiveType}{113} \contentsline {subsection}{\numberline {20.28.24}RenderingIntent}{113} \contentsline {subsection}{\numberline {20.28.25}ResolutionType}{114} \contentsline {title}{\numberline {21}C++ API Methods}{115} \contentsline {author}{}{115} \contentsline {title}{\numberline {22}Perl API Methods}{116} \contentsline {author}{}{116} \contentsline {section}{\numberline {22.1}Image::Magick Attributes}{116} \contentsline {subsubsection}{adjoin}{116} \contentsline {subsubsection}{antialias}{117} \contentsline {subsubsection}{background}{117} \contentsline {subsubsection}{base-filename}{117} \contentsline {subsubsection}{base-height}{117} \contentsline {subsubsection}{base-width}{117} \contentsline {subsubsection}{blue-primary}{117} \contentsline {subsubsection}{cache-threshold}{118} \contentsline {subsubsection}{class}{118} \contentsline {subsubsection}{colormap}{118} \contentsline {subsubsection}{colors}{118} \contentsline {subsubsection}{comment}{118} \contentsline {subsubsection}{compress}{119} \contentsline {subsubsection}{delay}{119} \contentsline {subsubsection}{density}{119} \contentsline {subsubsection}{depth}{119} \contentsline {subsubsection}{directory}{120} \contentsline {subsubsection}{dispose}{120} \contentsline {subsubsection}{dither}{120} \contentsline {subsubsection}{error}{120} \contentsline {subsubsection}{file}{121} \contentsline {subsubsection}{filename}{121} \contentsline {subsubsection}{filesize}{121} \contentsline {subsubsection}{font}{121} \contentsline {subsubsection}{format}{121} \contentsline {subsubsection}{fuzz}{122} \contentsline {subsubsection}{gamma}{122} \contentsline {subsubsection}{geometry}{122} \contentsline {subsubsection}{green-primary}{122} \contentsline {subsubsection}{height}{123} \contentsline {subsubsection}{index}{123} \contentsline {subsubsection}{interlace}{123} \contentsline {subsubsection}{label}{123} \contentsline {subsubsection}{loop}{124} \contentsline {subsubsection}{magick}{124} \contentsline {subsubsection}{matte}{124} \contentsline {subsubsection}{maximum-error}{124} \contentsline {subsubsection}{mean-error}{125} \contentsline {subsubsection}{montage}{125} \contentsline {subsubsection}{page}{125} \contentsline {subsubsection}{pointsize}{126} \contentsline {subsubsection}{preview}{126} \contentsline {subsubsection}{quality}{126} \contentsline {subsubsection}{red-primary}{127} \contentsline {subsubsection}{rendering-intent}{127} \contentsline {subsubsection}{scene}{127} \contentsline {subsubsection}{signature}{127} \contentsline {subsubsection}{size}{127} \contentsline {subsubsection}{server}{128} \contentsline {subsubsection}{taint}{128} \contentsline {subsubsection}{texture}{128} \contentsline {subsubsection}{type}{128} \contentsline {subsubsection}{units}{129} \contentsline {subsubsection}{verbose}{129} \contentsline {subsubsection}{white-point}{129} \contentsline {subsubsection}{width}{129} \contentsline {subsubsection}{x-resolution}{130} \contentsline {subsubsection}{y-resolution}{130} \contentsline {section}{\numberline {22.2}Image::Magick Methods}{130} \contentsline {subsubsection}{AddNoise()}{130} \contentsline {subsubsection}{Animate()}{130} \contentsline {subsubsection}{Annotate()}{130} \contentsline {subsubsection}{Append()}{131} \contentsline {subsubsection}{Average()}{132} \contentsline {subsubsection}{BlobToImage()}{132} \contentsline {subsubsection}{Blur()}{132} \contentsline {subsubsection}{Border()}{132} \contentsline {subsubsection}{Channel()}{132} \contentsline {subsubsection}{Charcoal()}{133} \contentsline {subsubsection}{Chop()}{133} \contentsline {subsubsection}{Clone()}{133} \contentsline {subsubsection}{Coalesce()}{134} \contentsline {subsubsection}{ColorFloodfill()}{134} \contentsline {subsubsection}{Colorize()}{134} \contentsline {subsubsection}{Comment()}{134} \contentsline {subsubsection}{Composite}{135} \contentsline {subsubsection}{Contrast()}{136} \contentsline {subsubsection}{Convolve()}{136} \contentsline {subsubsection}{Crop}{136} \contentsline {subsubsection}{CycleColormap}{137} \contentsline {subsubsection}{Deconstruct}{137} \contentsline {subsubsection}{Despeckle}{137} \contentsline {subsubsection}{Display()}{137} \contentsline {subsubsection}{Draw}{137} \contentsline {subsubsection}{Edge}{138} \contentsline {subsubsection}{Emboss}{139} \contentsline {subsubsection}{Enhance}{139} \contentsline {subsubsection}{Equalize}{139} \contentsline {subsubsection}{Flatten()}{139} \contentsline {subsubsection}{Flip}{139} \contentsline {subsubsection}{Flop}{139} \contentsline {subsubsection}{Frame}{140} \contentsline {subsubsection}{Gamma}{140} \contentsline {subsubsection}{Get()}{140} \contentsline {subsubsection}{ImageToBlob()}{140} \contentsline {subsubsection}{Implode()}{140} \contentsline {subsubsection}{Label()}{141} \contentsline {subsubsection}{Magnify()}{141} \contentsline {subsubsection}{Map()}{141} \contentsline {subsubsection}{MatteFloodfill()}{141} \contentsline {subsubsection}{MedianFilter()}{142} \contentsline {subsubsection}{Minify()}{142} \contentsline {subsubsection}{Modulate}{142} \contentsline {subsubsection}{Mogrify()}{142} \contentsline {subsubsection}{MogrifyRegion()}{143} \contentsline {subsubsection}{Montage()}{143} \contentsline {subsubsection}{Mosaic()}{144} \contentsline {subsubsection}{MotionBlur()}{145} \contentsline {subsubsection}{Morph()}{145} \contentsline {subsubsection}{Negate}{145} \contentsline {subsubsection}{New()}{145} \contentsline {subsubsection}{Normalize()}{146} \contentsline {subsubsection}{OilPaint()}{146} \contentsline {subsubsection}{Opaque()}{146} \contentsline {subsubsection}{OrderedDither()}{146} \contentsline {subsubsection}{Ping()}{146} \contentsline {subsubsection}{Profile()}{147} \contentsline {subsubsection}{Quantize()}{147} \contentsline {subsubsection}{QueryColor()}{148} \contentsline {subsubsection}{QueryColorName()}{148} \contentsline {subsubsection}{QueryFontMetric()}{148} \contentsline {subsubsection}{Raise()}{148} \contentsline {subsubsection}{Read()}{149} \contentsline {subsubsection}{ReduceNoise()}{149} \contentsline {subsubsection}{Resize()}{149} \contentsline {subsubsection}{Roll()}{150} \contentsline {subsubsection}{Rotate()}{150} \contentsline {subsubsection}{Sample()}{150} \contentsline {subsubsection}{Scale()}{150} \contentsline {subsubsection}{Segment()}{151} \contentsline {subsubsection}{Set()}{151} \contentsline {subsubsection}{Shade()}{151} \contentsline {subsubsection}{Sharpen()}{151} \contentsline {subsubsection}{Shear()}{151} \contentsline {subsubsection}{Signature()}{152} \contentsline {subsubsection}{Solarize()}{152} \contentsline {subsubsection}{Spread()}{152} \contentsline {subsubsection}{Stereo()}{152} \contentsline {subsubsection}{Stegano()}{152} \contentsline {subsubsection}{Swirl()}{153} \contentsline {subsubsection}{Texture()}{153} \contentsline {subsubsection}{Threshold()}{153} \contentsline {subsubsection}{Transform()}{153} \contentsline {subsubsection}{Transparent()}{153} \contentsline {subsubsection}{Trim()}{154} \contentsline {subsubsection}{UnsharpMask()}{154} \contentsline {subsubsection}{Wave()}{154} \contentsline {subsubsection}{Write()}{154} \contentsline {section}{\numberline {22.3}Image::Magick Errors}{155} \contentsline {title}{\numberline {23}Recognized Color Keyword Names}{156} \contentsline {author}{}{156} \contentsline {chapter}{References}{160} \contentsline {title}{\numberline {A}Appendix A}{161} \contentsline {author}{}{161} \contentsline {chapter}{Index}{163}