| Foreword | p. xiii |
| About the Author | p. xv |
| About the Technical Reviewer | p. xvii |
| Acknowledgments | p. xix |
| Introduction | p. xxi |
| Installing and Configuring ImageMagick | p. 1 |
| Installing Precompiled Versions | p. 1 |
| Debian and Ubuntu Linux | p. 1 |
| Red Hat Linux | p. 2 |
| Older ImageMagick Versions | p. 2 |
| Microsoft Windows | p. 2 |
| Installing from Source | p. 9 |
| Introducing Dependencies | p. 9 |
| Compiling on Unix Operating Systems | p. 10 |
| Installing Using FreeBSD Ports | p. 14 |
| Compiling ImageMagick on Microsoft Windows | p. 15 |
| Exploring the Architecture of ImageMagick | p. 22 |
| Using Configuration Files | p. 23 |
| Using Environment Variables | p. 25 |
| Limiting Resource Usage on the Command Line | p. 25 |
| Determining What Is Configured | p. 25 |
| Using ImageMagick | p. 27 |
| Online Help | p. 27 |
| Debug Output | p. 28 |
| Verbose Output | p. 28 |
| What Version of ImageMagick Is Installed? | p. 29 |
| Conclusion | p. 29 |
| Performing Basic Image Manipulation | p. 31 |
| Introducing Imaging Theory | p. 31 |
| Vector Images | p. 32 |
| Raster Images | p. 33 |
| Invoking convert | p. 35 |
| Changing the Size of an Image | p. 35 |
| Making an Image Smaller | p. 35 |
| Making an Image Smaller Without Specifying Dimensions | p. 43 |
| Understanding Geometries | p. 46 |
| Making an Image Larger | p. 47 |
| Processing Many Images at Once | p. 49 |
| Conclusion | p. 49 |
| Introducing Compression and Other Metadata | p. 51 |
| Compressing Images | p. 51 |
| Lossy Compression vs. Lossless Compression | p. 51 |
| Which Format Is Right for You? | p. 57 |
| Introducing Common File Formats | p. 58 |
| Introducing LZW Compression | p. 59 |
| Comparing File Sizes | p. 59 |
| Manipulating Compression Options with ImageMagick | p. 61 |
| Introducing Image Metadata | p. 66 |
| Altering How Pixels Are Stored | p. 71 |
| Introducing Gamma Correction | p. 73 |
| Setting Color Intent and Profiles | p. 74 |
| Handling Images That Don't Specify Dimensions | p. 74 |
| Setting Image Resolution | p. 74 |
| Transparency with GIF | p. 75 |
| Storing Multiple Image Formats | p. 75 |
| Adding, Removing, and Swapping Images | p. 76 |
| Creating Multiple Image Files | p. 76 |
| Decrypting Encrypted PDFs | p. 76 |
| Manipulating Animated Images | p. 77 |
| Changing the Frame Rate | p. 77 |
| Morphing Two Images | p. 77 |
| Creating Looping GIF Animations | p. 77 |
| Using GIF Disposal | p. 78 |
| Harnessing Disposal Methods | p. 78 |
| Conclusion | p. 78 |
| Using Other ImageMagick Tools | p. 79 |
| Using the Command-Line Tools | p. 79 |
| Compare | p. 79 |
| Composite | p. 83 |
| Conjure | p. 95 |
| Convert | p. 95 |
| Identify | p. 95 |
| Import | p. 98 |
| Mogrify | p. 100 |
| Montage | p. 100 |
| Using the Graphical Tools | p. 112 |
| Animate | p. 112 |
| Display | p. 114 |
| Conclusion | p. 116 |
| Performing Artistic Transformations | p. 119 |
| Blur | p. 119 |
| Charcoal | p. 120 |
| Colorize | p. 121 |
| Implode | p. 124 |
| Noise | p. 125 |
| Paint | p. 128 |
| Radial-blur | p. 129 |
| Raise | p. 130 |
| Segment | p. 132 |
| Sepia-tone | p. 133 |
| Shade | p. 134 |
| Sharpen | p. 135 |
| Solarize | p. 136 |
| Spread | p. 137 |
| Swirl | p. 138 |
| Threshold | p. 139 |
| Unsharp | p. 140 |
| Wave | p. 144 |
| Virtual-pixel | p. 145 |
| Conclusion | p. 146 |
| Performing Other Image Transformations | p. 147 |
| Performing Transformations on One Image | p. 147 |
| Adding Borders to an Image | p. 147 |
| Rotating an Image | p. 149 |
| Manipulating Contrast | p. 152 |
| Dithering an Image | p. 155 |
| Equalizing an Image | p. 157 |
| Flipping an Image | p. 159 |
| Tinting an Image | p. 160 |
| Negating an Image | p. 161 |
| Normalizing, Enhancing, and Modulating an Image | p. 165 |
| Shearing an Image | p. 172 |
| Rolling an Image | p. 175 |
| Turning Multiple Images into One Image | p. 176 |
| Appending Images | p. 176 |
| Averaging Images | p. 181 |
| Flattening Images | p. 183 |
| Conclusion | p. 183 |
| Using the Drawing Commands | p. 185 |
| Specifying Colors | p. 185 |
| Using Named Colors | p. 185 |
| Using HTML-Style Color Strings | p. 186 |
| Using RGB Tuples | p. 194 |
| Specifying a Page Size | p. 195 |
| Specifying a Background Color | p. 195 |
| Specifying the Fill Color and Stroke Color | p. 196 |
| Setting Gravity | p. 198 |
| Annotating an Image with Text | p. 199 |
| Drawing Simple Shapes | p. 210 |
| Drawing a Single Point | p. 211 |
| Drawing a Straight Line | p. 211 |
| Drawing a Rectangle | p. 212 |
| Drawing a Rectangle with Rounded Corners | p. 213 |
| Drawing a Circle | p. 214 |
| Drawing an Arc | p. 215 |
| Drawing an Ellipse | p. 216 |
| Drawing a Polyline | p. 216 |
| Drawing a Polygon | p. 217 |
| Drawing a Bezier | p. 217 |
| Drawing Text | p. 218 |
| Performing Color Operations That Take a Point and a Method | p. 218 |
| Transforming Your Drawings | p. 220 |
| Compositing Images with the draw Command | p. 230 |
| Using the Over Operator | p. 232 |
| Using the In Operator | p. 233 |
| Using the Out Operator | p. 233 |
| Using the Atop Operator | p. 234 |
| Using the Xor Operator | p. 235 |
| Using the Plus Operator | p. 236 |
| Using the Minus Operator | p. 237 |
| Using the Difference Operator | p. 238 |
| Using the Multiply Operator | p. 242 |
| Using the Bumpmap Operator | p. 243 |
| Performing Other Tasks with These Composition Operators | p. 244 |
| Antialiasing Your Images | p. 245 |
| Framing an Image | p. 247 |
| Writing Each Step of the Way | p. 252 |
| Applying Affine Matrices | p. 255 |
| Conclusion | p. 262 |
| PerlMagick: ImageMagick Programming with Perl | p. 263 |
| Presenting the Problem | p. 263 |
| Introducing the Format for This Chapter | p. 264 |
| Introducing the Code Structure | p. 264 |
| Using PhotoMagick.pm | p. 264 |
| Introducing photomagick | p. 266 |
| Introducing pmpublish | p. 281 |
| Using the Templates | p. 288 |
| Using the Index Template | p. 288 |
| Using the Image Template | p. 289 |
| Using the Thumbnail Template | p. 290 |
| Conclusion | p. 290 |
| Implementing Your Own Delegate with C | p. 291 |
| How Delegates Are Configured | p. 291 |
| Writing a Simple Delegate in C | p. 293 |
| Conclusion | p. 299 |
| RMagick: ImageMagick Programming with Ruby | p. 301 |
| Presenting the Code | p. 301 |
| Seeing the Helper Application in Action | p. 306 |
| Conclusion | p. 310 |
| MagickWand: ImageMagick Programming with PHP | p. 311 |
| Presenting the Problem | p. 311 |
| Presenting the Implementation | p. 311 |
| Creating a Background Image | p. 313 |
| Creating the Bar Images | p. 313 |
| Presenting the Code | p. 314 |
| Conclusion | p. 317 |
| Where to Go from Here | p. 319 |
| Where Do You Find Help Online? | p. 319 |
| What If You Find a Bug in ImageMagick? | p. 320 |
| Conclusion | p. 320 |
| Index | p. 321 |
| Table of Contents provided by Ingram. All Rights Reserved. |