ebook img

Apress image magick PDF

361 Pages·2006·12.54 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Apress image magick

5904ch00FM.qxd 11/17/05 3:05 PM Page i The Definitive Guide to ImageMagick Michael Still 5904ch00FM.qxd 11/17/05 3:05 PM Page ii The Definitive Guide to ImageMagick Copyright © 2006 by Michael Still All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN (Hardback): 1-59059-590-4 Library of Congress Cataloging-in-Publication data is available upon request. Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1 Trademarked names may appear in this book. Rather than use atrademark symbol with every occurrence of atrademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Lead Editor: Matt Wade Technical Reviewer: Doug Jackson Editorial Board: Steve Anglin, Dan Appleman, Ewan Buckingham, Gary Cornell, Tony Davis, Jason Gilmore, Jonathan Hassell, Chris Mills, Dominic Shakeshaft, Jim Sumser Project Manager: Kylie Johnston Copy Edit Manager: Nicole LeClerc Copy Editor: Kim Wimpsett Assistant Production Director: Kari Brooks-Copony Production Editor: Linda Marousek Compositor and Artist: Kinetic Publishing Services, LLC Proofreader: Kim Burton Indexer: Carol Burbo Cover Designer: Kurt Krames Manufacturing Director: Tom Debolski Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail [email protected], or visit http://www.springeronline.com. For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA 94710. Phone 510-549-5930, fax 510-549-5939, e-mail [email protected], or visit http://www.apress.com. The information in this book is distributed on an “as is” basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work. The source code for this book is available to readers at http://www.apress.comin the Source Code section and also at http://www.stillhq.com. 5904ch00FM.qxd 11/17/05 3:05 PM Page iii For my ever-patient and loving family—Catherine,Andrew,and Matthew—who put up with me being distracted by random projects,including this one.Thanks to my friends who encouraged me along the way and all those people who asked great questions that Ididn’t find enough time to answer.Ihope your answers are somewhere in here. Oh,and thanks,Dad,for coming over to provide moral support.What would Ihave done without you to mind the cat and help me drink all the port? Thanks to Mum as well for all the support during my childhood;it positioned me well to undertake aproject like this. 5904ch00FM.qxd 11/17/05 3:05 PM Page iv 5904ch00FM.qxd 11/17/05 3:05 PM Page v Contents at a Glance Foreword. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii About the Author. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv About the Technical Reviewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi ■ CHAPTER 1 Installing and Configuring ImageMagick. . . . . . . . . . . . . . . . . . . . . . . . . 1 ■ CHAPTER 2 Performing Basic Image Manipulation. . . . . . . . . . . . . . . . . . . . . . . . . . 31 ■ CHAPTER 3 Introducing Compression and Other Metadata. . . . . . . . . . . . . . . . . . 51 ■ CHAPTER 4 Using Other ImageMagick Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 ■ CHAPTER 5 Performing Artistic Transformations. . . . . . . . . . . . . . . . . . . . . . . . . . . 119 ■ CHAPTER 6 Performing Other Image Transformations. . . . . . . . . . . . . . . . . . . . . . 147 ■ CHAPTER 7 Using the Drawing Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 ■ CHAPTER 8 PerlMagick:ImageMagick Programming with Perl. . . . . . . . . . . . . 263 ■ CHAPTER 9 Implementing Your Own Delegate with C . . . . . . . . . . . . . . . . . . . . . . 291 ■ CHAPTER 10 RMagick:ImageMagick Programming with Ruby. . . . . . . . . . . . . . . 301 ■ CHAPTER 11 MagickWand:ImageMagick Programming with PHP . . . . . . . . . . . 311 ■ CHAPTER 12 Where to Go from Here. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 ■ INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 v 5904ch00FM.qxd 11/17/05 3:05 PM Page vi 5904ch00FM.qxd 11/17/05 3:05 PM Page vii Contents Foreword. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii About the Author. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv About the Technical Reviewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi ■ CHAPTER 1 Installing and Configuring ImageMagick. . . . . . . . . . . . . . . . . . . 1 Installing Precompiled Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Debian and Ubuntu Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Red Hat Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Older ImageMagick Versions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Microsoft Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Installing from Source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Introducing Dependencies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Compiling on Unix Operating Systems. . . . . . . . . . . . . . . . . . . . . . . . . 10 Installing Using FreeBSD Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Compiling ImageMagick on Microsoft Windows. . . . . . . . . . . . . . . . . 15 Exploring the Architecture of ImageMagick . . . . . . . . . . . . . . . . . . . . 22 Using Configuration Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Using Environment Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Limiting Resource Usage on the Command Line. . . . . . . . . . . . . . . . 25 Determining What Is Configured. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Using ImageMagick. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Online Help. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Debug Output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Verbose Output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 What Version of ImageMagick Is Installed?. . . . . . . . . . . . . . . . . . . . . 29 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 ■ CHAPTER 2 Performing Basic Image Manipulation . . . . . . . . . . . . . . . . . . . . 31 Introducing Imaging Theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Vector Images. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Raster Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 vii 5904ch00FM.qxd 11/17/05 3:05 PM Page viii viii ■ CONTENTS Invoking convert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Changing the Size of an Image. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Making an Image Smaller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Making an Image Smaller Without Specifying Dimensions . . . . . . . 43 Understanding Geometries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Making an Image Larger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Processing Many Images at Once. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ■ CHAPTER 3 Introducing Compression and Other Metadata . . . . . . . . . . . 51 Compressing Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Lossy Compression vs.Lossless Compression. . . . . . . . . . . . . . . . . . 51 Which Format Is Right for You?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Introducing Common File Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Introducing LZW Compression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Comparing File Sizes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Manipulating Compression Options with ImageMagick . . . . . . . . . . 61 Introducing Image Metadata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Altering How Pixels Are Stored . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Introducing Gamma Correction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Setting Color Intent and Profiles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Handling Images That Don’t Specify Dimensions. . . . . . . . . . . . . . . . 74 Setting Image Resolution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Transparency with GIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Storing Multiple Image Formats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Adding,Removing,and Swapping Images . . . . . . . . . . . . . . . . . . . . . 76 Creating Multiple Image Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Decrypting Encrypted PDFs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Manipulating Animated Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Changing the Frame Rate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Morphing Two Images. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Creating Looping GIF Animations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Using GIF Disposal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Harnessing Disposal Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5904ch00FM.qxd 11/17/05 3:05 PM Page ix ■ CONTENTS ix ■ CHAPTER 4 Using Other ImageMagick Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Using the Command-Line Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 compare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 composite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 conjure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 convert. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 identify. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 mogrify. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 montage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Using the Graphical Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 animate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 display. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 ■ CHAPTER 5 Performing Artistic Transformations . . . . . . . . . . . . . . . . . . . . . 119 blur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 charcoal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 colorize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 implode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 paint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 radial-blur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 raise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 segment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 sepia-tone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 shade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 sharpen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 solarize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 spread. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 swirl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 threshold. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 unsharp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 wave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 virtual-pixel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.