One weakness of Java has been its graphics capabilities. Java 1.0 and 1.1 only included simple primitives for line drawing: lines could only be one pixel wide, they could only be solid, and there wasn't any good way to draw curves. Font management and color management were also weak. Java 2D (collectively called the "2D API") signals a major improvement in Java's graphics capabilities. It covers many of the classes in Java 1.2 that address graphics handling and improves on many weaknesses that were present in the previous versions of Java.The 2D API allows you to produce high-quality, professional images on a screen or printer.
Java 2D Graphics describes the 2D API from top to bottom, demonstrating how to set line styles and pattern fills as well as more advanced techniques of image processing and font handling. You'll see how to create and manipulate the three types of graphics objects: shapes, text, and images. Other topics include image data storage, color management, font glyphs, and printing.
Java 2D Graphics assumes no prior knowledge of graphics. Chock full of detailed explanations and examples, this book provides beginning Java programmers with a solid foundation in 2D graphics and helps more advanced programmers create and use high-quality images in their applications.Topics covered in the book include:
- The rendering pipeline
- Shapes and paths
- Geometry
- Painting with solid colors, gradients, and textures
- Stroking paths, including dashed lines
- Transformations: translation, rotation, shearing, and scaling
- Alpha compositing
- Clipping
- Rasterizing and antialiasing
- Fonts and text
- Font metrics
- Glyphs
- Colors and color spaces
- sRGB and CIEXYZ
- ICC color profiles
- Images, image color models, and image data
- Image processing
- Image data storage
- Graphics devices
- Printing
Jonathan B. Knudsen is a staff writer for O'Reilly & Associates. He is the author of Java Cryptography and has contributed to Java Swing, Java AWT Reference, and the second and third editions of Exploring Java. Currently he is working on a book about LEGO MINDSTORMS. He also writes a monthly online column called "Bite-Size Java." Jonathan graduated cum laude from Princeton in 1993 with a degree in mechanical engineering. However, it was the non-engineering courses he really enjoyed, including Italian Renaissance art, Russian literature, and epic poetry. Jonathan is one of perhaps a dozen engineers in the world who has read Spenser's Faerie Queene cover to cover. Jonathan's current interests include inline skating and music, both popular and operatic. (A recording of Puccini's "Tosca" fueled much of the finishing touches for this book. Also, you can see echoes of Seal in Chapter 6.) Jonathan works at home with his wife, Kristen, and their children, Daphne, Luke, and Andrew.