Volume 1: Canvas
Slutsåld
David Geary is the president of Clarity Training, Inc. and a prominent author, speaker, and consultant, David wrote the best-selling books on the Java component frameworks, Swing and JavaServer Faces. David's Graphic Java: Swing is the all-time, best-selling Swing book and Core JSF, which David wrote with Cay Horstman, is the best-selling book on JavaServer Faces. David was one of a handful of experts on the JSF Expert Group (EG) that actively defined the standard Java-based web application framework. David has spoken at more than 100 NFJS symposiums since 2003, and he also speaks at other conferences such as TheServerSide Java Symposium, JavaOne, JavaPolis, and JAOO and is a three-time JavaOne rock star.
Preface xv
Acknowledgments xxiii
About the Author xxv
Chapter 1: Essentials 1
1.1 The canvas Element 1
1.2 Canvas Contexts 8
1.3 Canonical Examples in This Book 12
1.4 Getting Started 14
1.5 Fundamental Drawing Operations 22
1.6 Event Handling 26
1.7 Saving and Restoring the Drawing Surface 33
1.8 Using HTML Elements in a Canvas 36
1.9 Printing a Canvas 46
1.10 Offscreen Canvases 51
1.11 A Brief Math Primer 53
1.12 Conclusion 64
Chapter 2: Drawing 65
2.1 The Coordinate System 67
2.2 The Drawing Model 68
2.3 Drawing Rectangles 70
2.4 Colors and Transparency 72
2.5 Gradients and Patterns 76
2.6 Shadows 83
2.7 Paths, Stroking, and Filling 88
2.8 Lines 103
2.9 Arcs and Circles 124
2.10 Bzier Curves 137
2.11 Polygons 144
2.12 Advanced Path Manipulation 150
2.13 Transformations 170
2.14 Compositing 181
2.15 The Clipping Region 187
2.16 Conclusion 198
Chapter 3: Text 201
3.1 Stroking and Filling Text 202
3.2 Setting Font Properties 207
3.3 Positioning Text 210
3.4 Implementing Text Controls 225
3.5 Conclusion 252
Chapter 4: Images and Video 253
4.1 Drawing Images 254
4.2 Scaling Images 259
4.3 Drawing a Canvas into a Canvas 266
4.4 Offscreen Canvases 270
4.5 Manipulating Images 274
4.6 Clipping Images 302
4.7 Animating Images 306
4.8 Security 312
4.9 Performance 313
4.10 A Magnifying Glass 321
4.11 Video Processing 328
4.12 Conclusion 337
Chapter 5: Animation 339