Advanced Imaging API, or JAI, provides tools for "sophisticated,
high performance image processing." First developed in the
late 1990s some of the JAI features are now available in J2SE5.0
(e.g. I/O for a wide range of image formats) but it still provides
a large and robust set of imaging tools.
For example, many high end imaging tasks involve dealing with extremely
large images. JAI allows for "tiling" in whch users can
grab a section of an image for display and thus save lots of bandwidth.
- Deferred execution of image processing task until they are needed.
This "just-in-time" approach provides for faster response
to the user since not time is wasted on unneeded computation.
- Built-in RMI (Remote Method Invocation is discussed in Part
2) allows for distributing image tasks and client interaction
over the network.
- Extensible framework allows for expansion of capabilities via
plug-in modules developed by users and third parties.
Imaging capabilities include over 100 different image processing
operations, image I/O for several formats (many of these are now
available in J2SE5.0), and using Java 2D tools to overlay graphics
See the links below for further description of JAI and to download
Applications of JAI
is used by astronomers to plan observations for the Gemini
Telescope. The JSky
home site describes how the program manages catalogs of imagery
obtained in many formats and provides imaging tools to analyze individual
images as well as to combine and compare multiple images.
JAI is used as part of the
Scientist's Expert Assistant developed at NASA Goddard Space
Flight Center in conjunction with the Space Telescope Science Institute.
This is "a system that combines interactive visual and expert
system approaches to assist astronomers in planning observations."
See the papers
describing the program.
is a "planetary data analysis tool works as a map program (or
Graphical Information System) for NASA planetary imagery. Developed
by Steve McDonald, it "combines imagery, elevation and other
data sets into an integrated map view." Various image processing
functions are available. A 3D
version is under development.
is another Java program from Steve McDonald that is used to analyze
data from the space-based Chandra
"a high-performance image display component for serious
imaging applications using JAI (Java Advanced Imaging). It works
asynchronously, loading/computing image tiles in background threads.
This frees up the GUI thread so the user doesn't have to wait
for the entire image to load, and scrolling is fast regardless
of image size (as long as it is tiled)."
Advanced Imaging In Action: The Java Advanced Imaging API Customer
Success Stories for a long list of other programs used in a
wide range of applications that take advantage of JAI.
References & Web Resources
Latest update: Oct. 19, 2005