RealTime IT News

Java Imaging Code Unleashed

Sun Microsystems posted new projects to its developers' site today that the company says will help improve Java-based graphics across multiple platforms.

Java Advanced Imaging (JAI) and JAI Image I/O Tools are now available on Sun's java.net for download. Sun said the projects simplify the way imaging applications are made and where they are played -- from thin clients to workstations.

The imaging technology also lets developers with portable image processing applications. Initial target development areas include the mapping, medical, commercial, network and government imaging markets.

The company said this round of releases helps it infuse the ecosystem with the chance to contribute directly to code design and build on it.

"Already there have been breakthrough implementations using JAI, such as the science activity planner for the Mars Exploration Rover. We know that with the input of the entire community, the boundaries for JAI are endless," Blake Connell, group product marketing manager at Sun, said in a statement.

Brian Burkhalter, lead architect for the JAI API, said the projects require a compatible J2SE platform but are able to support micro-level devices as a server-side component via innate network-imaging constructs, Web services and the like.

The API includes a J-Desktop integration component, as well as a standard interface for cross-platform imaging. The API version needs a Java Runtime Environment (JRE) version 1.3 or higher, while the I/O Tools need version 1.4 to run. Sun said the technology also allows the same application to be delivered to multiple platforms without source code changes. The software release even includes simplified programming tasks and increased code reuse.

"Any tool that supports an 'Ant' build can be used to build the projects wherever a compatible JVM [Java Virtual Machine] is available, and then be used to develop applications and debug them using the IDE," Burkhalter told internetnews.com. "Native components are provided for acceleration on Solaris, Linux and Windows, but JAI is fully functional without this native support, as is JAI Image I/O for all but one of its supported image-data formats."

The download also supports enhanced client-server imaging through a network-centric architecture and the media capabilities of CPUs. "A developer would check out from the CVS [concurrent versioning system] repository each of the two projects called 'jai-core' and 'jai-imageio-core,'" Burkhalter said. "Within each project the Apache Ant build tool would be used to compile the source files and build the binaries/jar files.

"These binaries are the same as those provided in the standard distributions that Sun has been providing to date from java.sun.com," he continued. "Therefore for use with an application, the developer would need simply to install the new binaries into the same locations occupied by the binaries obtained from the standard distribution."

Just as important to JAI's APIs, the JAI Image I/O is a pluggable framework for reading, writing and transcoding image data and metadata. Reader-writer plug-ins are supplied for the Bitmap (BMP), Joint Photographic Experts Group (JPEG), Revised Lossless JPEG (JPEG-LS), JPEG2000, Portable Network Graphics (PNG), Portable Anymap (PNM), Uncompressed raw image data (Raw), Tagged Image File Format (TIFF) and Wireless BMP (WBMP) image formats. In addition, Sun said a writer plug-in is supplied for the Graphics Interchange Format (GIF).

Already JAI is central to the design of Lockheed Martin's Web-based Electronic Light Table (WebELT), which improves viewing capabilities and higher fidelity image resolution for browsers like Firefox, Netscape and Internet Explorer. Sun said JAI is also a central component of NinJo, a configurable client-server application framework and visualization workstation that uses layers to add special functionalities that process and display a range of meteorological data.

Sun has been rolling out bits and pieces of its projects to java.net since its launch in 2003. The company recently posted the new Java 2 Platform, Standard Edition (J2SE) release (code-named Mustang) project, which opened snapshots of the next release to the developer community for early review and developer involvement.