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
Java 2D Graphics is a remarkably accessible guide to graphics programming using Sun's new Java 2D API. Besides the basic navigation of the API, this title delivers plenty of useful advanced material for extending Java 2D's capabilities.
After a simple introductory example, the book focuses on the graphics architecture of Java 2D and its rendering pipeline. Support classes in Java 2D receive ample coverage as well, with sections outlining topics such as storing points, shapes and paths. For basic graphics output, the book demonstrates simple tasks--the process of drawing common shapes such as lines, ellipses, and rectangles--as well as the complex as seen when modifying graphics output through translating, rescaling, rotating or shearing.
Text output in Java 2D receives its due as well, since the book acknowledges Java 2D's advanced font capabilities that allow it to handle right-to-left languages such as Arabic. Further sections delve into Java 2D colour models (including support for the CIEXYZ and sRGB colour standards). With regard to the display of images, the book covers the built-in support for image filtering in Java 2D which allows programmers to build toggles and fades into their code that alter brightness, contrast, blurring and sharpening.
For advanced readers, Java 2D Graphics presents techniques like double buffering and matrix operations for custom image effects. Another expert section, on the internal storage classes for image data, will be useful for those who want to write image decoders. (A sample PNG decoder demonstrates the basics here.) Final sections look at printing, animation and performance issues.
In all, Java 2D Graphics provides a fine introduction to the latest in 2-D graphics programming from Sun, in a title that will be useful to both beginning and advanced Java developers. --Richard Dragan, Amazon.com