|
Graphics Programming with Perl Martien Verbruggen 2002 | 328 pages ISBN: 1930110022 |
|||
![]() |
$39.95 | Softbound print book | |
![]() |
$20.00 | PDF ebook | |
Table of Contents
preface xiiiAbout this book xiii
Who should read this book? xiv
Coding practices xv
Source code downloads xvi
author online xvii
acknowledgments xix
about the cover illustration xxi
Part 1 Foundations 1
- 1 Overview of graphics 3
- 1.1 Perl and graphics 4
- 1.2 The bits and pieces in graphics programming 5
- 1.3 Color spaces and palettes 7
- RGB 7 . CMY and CMYK 8 . HSV and HLS 9
- YUV, YIQ and YCbCr 12 . Grayscale 12
- Color distance 13 . Reducing the number of colors in an image 13
- 1.4 Summary 14
- 2 Overview of graphics file formats 15
- 2.1 Some graphics formats 16
- GIF 17 . JPEG, JFIF 18 . PNG 18
- MNG 19 . SVG 19 . TIFF 19
- 2.2 Finding the size and type of an image 20
- Image::Size 20 . Image::Magick 21
- Do it yourself 22 . More on file size and information 24
- 2.3 Conversion of graphics formats 24
- 2.4 Summary 26
- 3 Overview of tools and modules 27
- 3.1 CPAN 28
- 3.2 The tools 29
- The Chart::* modules 29 . Gnuplot 29
- GD 29 . GD::Graph, GIFgraph and Chart::PNGgraph 30
- GD::Text 30 . The Gimp 30 . Image::Magick 30
- Image::Size 31 . Inline 31 . OpenGL 32
- PGPLOT 32 . RenderMan 33 . Term::Gnuplot 33
- 3.3 A note on module versions 34
- 3.4 Summary 34
Part 2 Creating graphics 35
- 4 Drawing 37
- 4.1 Drawing with GD 39
- An example drawing 40 . Filling objects 42
- Drawing text with GD 43 . GD.s built-in fonts 44
- TrueType fonts and GD 45
- 4.2 Drawing with Image::Magick 46
- An example drawing 46 . Anti-alias and fuzz 47
- Drawing by combining images 48 . Drawing with paths 50
- Drawing text with Image::Magick 51
- 4.3 Combining GD and Image::Magick 53
- 4.4 Drawing with Term::Gnuplot 55
- 4.5 PostScript and SVG 59
- 4.6 Summary 59
- 5 Creating charts 60
- 5.1 GD::Graph and friends 62
- Preparing your data sets for GD::Graph 63
- Controlling the look of your chart 65
- GD::Graph and fonts 65 . Saving your chart to a file 66
- Bar and area charts 68 . Lines, Points and LinesPoints charts 70 . Mixed charts 72
- 5.2 The Chart distribution 74
- Pareto charts 75
- 5.3 PGPLOT 76
- PGPLOT devices 76 . Example: A simple X-Y plot 77
- Example: A contour plot 81 . Example: Plotting a galaxy 84
- 5.4 Interfacing with gnuplot 85
- 5.5 Summary 89
- 6 Graphics and the Web 90
- 6.1 The Common Gateway Interface 91
- HTTP and CGI 91
- 6.2 Suitable image formats 92
- Web safe color palettes 92
- 6.3 CGI and dynamically generated graphics 94
- 6.4 Forms and encapsulated graphics 96
- 6.5 Image collections and thumbnailing 100
- Thumbnails with Image::Magick 101
- Thumbnails with GD 102 . Contact sheets with Image::Magick.s . visual directory 103
- Contact sheets with Image::Magick::Montage 104
- An example application: A web photo album 105
- Designing the data 107
- 6.6 Summary 121
- 7 Animations for the Web 122
- 7.1 Animation file formats 123
- GIF 123 . MNG 124
- Macromedia Flash 124 . SVG 125
- 7.2 GIF animations 125
- 7.3 Perl and animations 126
- 7.4 Repeatedly applying a filter 127
- Example: making objects appear 127
- Example: Zooming in on an object 129
- 7.5 Animated text 131
- 7.6 Animated charts 132
- 7.7 Animations with the Gimp 134
- 7.8 Summary 137
- 8 Resizing and combining images 138
- 8.1 Scaling and cropping an image 139
- Image::Magick geometry specification 139
- Cropping an image 140
- 8.2 Combining Images 140
- Combining GD images 140
- Combining Image::Magick images 142
- Adding a watermark to an image 145
- 8.3 Summary 151
- 9 Three-dimensional graphics 153
- 9.1 OpenGL 154
- OpenGL library functions in Perl 155
- Capturing your OpenGL output 157
- Example: a planetary system 160
- OpenGL summary 164
- 9.2 RenderMan 164
- How to use the module and the BMRT 165
- The RenderMan language binding for Perl 166
- Example: A rotating cube of cubes 167
- 9.3 Summary 172
Part 3 Special topics 173
- 10 Writing your own graphics modules 175
- 10.1 Interface design 176
- Coordinate transformation 180
- Choosing your drawing primitives 181
- Implementing the interface 182
- 10.2 An OO implementation of a clock 186
- 10.3 Summary 188
- 11 Controlling text placement 190
- 11.1 Determining text size 191
- Text sizes in GD 191
- Text sizes in Image::Magick 192
- 11.2 Aligning text in graphics 194
- Aligning text with GD 194
- Aligning text with Image::Magick 196
- 11.3 Wrapping text 197
- The GD::Text modules 207
- 11.4 Summary 209
- 12 Manipulating pixels and transparency 210
- 12.1 GD and pixels 211
- Example: rotating RGB values 211
- Removing duplicate color palette entries 212
- 12.2 Image::Magick and pixels 213
- Rotating RGB values 214
- 12.3 Convolution 215
- Convolution with Image::Magick 217
- Using Image::Magick's Convolve() method 224
- Convolution with PDL 226
- 12.4 Alpha channels and transparency 229
- Transparency and the GD module 229
- Transparency and Image::Magick 230
- How to view partially transparent images 233
- 12.5 Fast manipulation of image pixels 233
- Using Inline::C 234
- 12.6 Summary 238
Part 4 Appendices 239
- A Image::Magick introduction & reference 241
- B Color space conversion algorithms 284
- C Module code 288
- How to create charts and graphs
- Serving graphics content to the WWW with CGI
- How to modularize your graphics code, and re-use it
- Code to manipulate image pixels (and how to do it fast)
- How to work with text in graphics
- A complete reference for Image::Magick
- Examples you can use and build on:
- Adding watermarks to your images
- Creating thumbnails
- Dynamic web pages with charts
- Building your own convolution filters
- A web photo album
- 3D animation with OpenGL and Renderman
 
references 293
index 295
DESCRIPTION
An increasing number of tasks in application programming and web design requires creating and manipulating graphics. Perl is a powerful and flexible language that is not commonly associated with graphics programming. The speed of developing in Perl plus the large number of freely available Perl graphics modules, make it an excellent option for the rapid development of graphics applications.
Graphics Programming with Perl is a guide to the graphics and imaging modules and tools available to the Perl programmer. It covers subjects ranging from drawing your own pictures and dynamic graphics for web pages to rendering three-dimensional scenes and manipulating individual image pixels. The text is liberally illustrated with example code and programs that show how to achieve common, and sometimes not so common, graphics programming tasks. For the even less common tasks, the book shows you how to write your own modules.
What's inside:
ABOUT THE AUTHOR...
A developer, architect and systems administrator, Martien Verbruggen is the author of the GD::Graph charting module and the GD::Text modules. He a regular contributor to the Perl Usenet groups. Martien lives in Sydney, Australia, with his wife and daughter.

