Find JSRs
Submit this Search

Ad Banner

Summary  |  Proposal  |  Detail (Summary & Proposal)
JSRs: Java Specification Requests
JSR 15: Image I/O Framework Specification

Stage Access Start Finish
Final Release Download page 09 May, 2002  
Final Approval Ballot View results 04 Dec, 2001 17 Dec, 2001
Proposed Final Draft Download page 08 Nov, 2001  
Public Review Download page 06 Jun, 2000 06 Jul, 2000
Participant Review Login page 02 May, 2000 02 Jun, 2000
CAFE   09 Jun, 1999 05 Jul, 1999
JSR Approval   01 Jun, 1999 08 Jun, 1999
Status: Final
JCP version in use: 2.1
Java Specification Participation Agreement version in use: 1.0

Image I/O supports image reader and writer plug-ins for sampled image formats. The API provides for exposure and preservation of metadata as well as pixel data.

Please direct comments on this JSR to the Spec Lead(s)

Specification Leads
  Phil Race Sun Microsystems, Inc.
Expert Group
  Clunie, David JPL Oracle
  Sun Microsystems, Inc.

Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1: Identification

Sun Microsystems

Primary contacts:

John Zimmerman
Computer Systems

Phil Race
Java Software

Section 2: Request


This JSR proposes to enhance Java Advanced Imaging to support the core Java 2 platform in the manipulation of digital images in a variety of file and compression formats.

An extensible framework specification will be developed as a part of Java Advanced Imaging, allowing Java 2 platform developers access to essentially arbitrary sampled image formats, including compressed or otherwise encoded formats. The specification will define classes and codecs to allow the reading and writing of common image formats, including JPEG, XBM, PNG and TIFF, among others.

The image I/O portion of Java Advanced Imaging will be developed and packaged so that it is usable by Java 2 developers without requiring them to use the entirety of Java Advanced Imaging.

The Java Advanced Imaging API has supported image file I/O throughout its development; this JSR describes the process whereby the Java Advanced Imaging API will be enhanced to support the Java 2 platform in general.

The needs addressed

Applications intended for end-user desktop environments are increasingly graphically rich. Such applications could make good use of the ability to load and save digital images. Presently the core Java 2 platform provides only the ability to recognize JPEG, XBM, and GIF image formats, and has no facilities to save images.

The framework discussed here will facilitate general Java 2 based applications to easily read in or save out images. Furthermore, provision will be made to allow sophisticated control of image encoding and decoding in applications which require this flexibility.

It will allow easy access to a wide range of image formats via classes that will also allow specialized applications to access more advanced features of the various image formats. The framework will be extensible, so that classes capable of handling new image formats can be developed by application programmers.

It will treat various methods of image storage in as identical a manner as possible, making the actual location of image data (local or networked) transparent to the application program.

This framework will interoperate effectively with current image processing capabilities in the Java 2 platform.

Underlying technologies

The image processing (IP) and IIO portions of the Java Advanced Imaging specification and implementation will be separated both conceptually and physically. The intent is that the IIO and IP portions can be used together or separately. This will be accomplished by making the IIO and IP portions of Java Advanced Imaging separate packages and jar files, either of which can be downloaded and used by developers with the general Java 2 platform, Java Advanced Imaging applications, or both.

Target Platform

This extension will target the standard Java 2 desktop platform.

Package naming

The image processing portion of Java Advanced Imaging is proposed to remain*; the IIO package is proposed to exist in the seperate package*

Platform Dependencies

There are no platform dependencies in this proposed API.

Native code is not in principle necessary. The reference implementation will contain pure Java versions of all codecs. Native code for some platforms may also be supplied for performance reasons.

Security, internationalization or localization implications

This extension will allow the application to read and write both local and remote files, subject to the Java security model.

Pure Java implementations of this extension will be downloadable and runnable by applets. Native code accelerated versions must be specifically downloaded and installed by the user to realize the advantages of native code acceleration.

Risk Assessment

Implementations of some parts of the specification may take time. Other parts may be helped along by prototyping work already carried out that will be contributed to the Expert Group for consideration should this project be approved.

Effect on existing specifications

No currently delivered specification would be affected by this work.

Section 3: Contributions

Information about Java Advanced Imaging is available at the JDC web site and at