Prior to version 1.4, the JDK had very limited capabilities for reading and writing image files. It was possible to read GIF and JPEG images, but there was no official support for writing images at all.
This situation is now much improved. JDK 1.4 introduces the javax.imageio package that contains “out of the box” support for reading and writing several common file formats, as well as a framework that enables third parties to add readers and writers for other formats. Specifically, the JDK contains readers for the GIF, JPEG, and PNG formats and writers for JPEG and PNG. (We suspect that writing GIF files is not supported because of patent issues.)
You can find a GIF encoder at http://www.acme.com/java.
The basics ...