gif : Java Glossary


GIF (Graphic Interchange Format). A file format Java uses primarily for icons. Such files usually have a *.gif extension. They are superior to JPEG (Joint Photographic Experts Group) files for line art, though JPEG is better for photographs. *.gifs allow transparent backgrounds where JPEGs (Joint Photographic Experts Groups) do not.


*.gif format was originated by Compuserve. The problem was it violated a patent held by Unisys who did done some sabre rattling demanding people stop using the format. Java has always supported *.gif files for display, though a GIFEncoder to create *.gif files did not appear until Java version 1.6 when the *.gif patents expired on 2003-06-19.

The Unisys patent on the LZW (Lempel—Ziv—Welch) compression used in *.gif ran out 2003-06-20 in the USA. It dragged on longer in other countries. The counterpart patents in the United Kingdom, France, Germany and Italy expired on 2004-06-18, the Japanese counterpart patents expired on 2004-06-20 and the counterpart Canadian patent expired on 2004-07-07. Consequently, while Unisys has further patents and patent applications relating to improvements to the LZW technique, the *.gif format may now be used freely.

You may display uncompressed *.gif files without restriction and you can even make them for commercial purposes without restriction. What in former times you could not do is make commercial compressed *.gif files without directly or indirectly paying a royalty. What keeps *.gif files alive (even though *.png format is superior in every way) is a feature that Netscape added to them — animation. Animated *.gifs contain several images that are displayed in rotation to create a simple repetitive animation. Starting in JDK (Java Development Kit) 1.6 Java has support for animated *.gifs. Prior to that, you had to take the *.gifs apart yourself and animate them manually.

The format of the *.gif file header is as follows:

signature *.gif 3 bytes
version 87a or 89a 3 bytes
width in pixels 2 bytes unsigned binary little endian
height in pixels 2 bytes unsigned binary little endian

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number