Gif4J Library :: Read Me
ReadMe
 INTRODUCTION
The Gif4J library is a Java 1.2 or above compatible class library for creating, manipulating and encoding (write to output streams) images as gif files on-the-fly.

Note: The newly released Tiger -- Java 2 Platform, Standard Edition 5.0 (as well as previous versions) doesn't support GIF image writing. Find more information here.

The Gif4J library base features include:

Full* GIF89a specification support including gif animation extensions, local color tables, graphic control extensions (disposal methods, transparency, delays etc.)
* The Gif4J library doesn't support only archaic GIF89a extensions ("Plain Text Extension" etc.) which are not supported by widespread GIF viewers and decoders: first of all Microsoft Internet Explorer etc.

The fastest, most intelligent and qualitative color quantizer for reducing number of unique colors down to 256 or less (GIF format support for any number of colors between 2 and 256). The Gif4J quantizer supports 8 quantizing modes and produces unattainable results among the most commonly used Java-based qunatizers including Median-Cut, Octree and NeuQuant..

Watermarking: easy to add, position (absolute and relative positioning are supported) and render watermarks.

Text rendering opportunities: the Gif4J library undertakes to render a text across the single or multiple lines with the specified decorate attributes such as fonts, background, foreground and outline paints, text centering etc.
Hint: With the help of Gif4J Library you can prevent the grabbing of any privacy information (passwords, e-mails, price lists, financial reports etc.) by publishing such information as gif images.

ImageIO integration: write GIF files through standard ImageIO API (Java 1.4+) without calling Gif4J methods directly.

Simplicity of use: the Gif4J library undertakes lots of analyzing, converting and preprocessing image operations. For example, to encode any BufferedImage instance you need to write only one line of a code and it's not necessary to think of instance's type, size, color model, transparency etc.

The Gif4J library is profiled to the extreme speed: all algorithms' implementations are carefully designed and coded for maximum performance; the library is thread-safe; there is an embedded object pool system to optimize memory use and prevent often GC running.

But the Gif4J library is not only the standard java gif image encoder. It also includes a plenty of additional opportunities on gif animation and images processing:

Resize strategies: the Gif4J library undertakes to control general image size (take into consideration all internal frames' size and their positions) using one of the predefined resize strategies.

Absolute and relative internal gif frame positioning: set the position of an immediate frame inside the general GIF image logical screen by providing absolute position or layout constraint (for example, left-top, bottom-center etc.).

Morphing filters: 7 morphing filters with more than 20 morphing options lets you create amazing gif animation without any additional coding.

"Force global color table" feature: by default to provide better quality every GIF frame has own suite of unique colors (so called "Local Color Table"). To optimize the final GIF file size (every table takes up to 756 bytes) these tables can be unite to one global color table using the embedded special edition of the Gif4J quantizer.
 TRIAL VERSION
The trial version is for your evaluation only. If you want to use the Gif4J Library after a trial period, you have to purchase a registered copy. Browse http://www.gif4j.com/order.jsp for detailed information about registration methods.

NOTE:
The trial Gif4J Library version has the next limitations:

  1. Every gif frame is marked with "gif4j eval" watermark.
  2. The Quantizer supports only MEMORY_LOW_OPTIMIZED mode of operation (see API here). All others modes are ignored.
  3. The trial version is not profiled to the speed and memory use.
    The embedded object pool system (to optimize memory use and prevent often GC running) and other optimization oriented classes are removed. As a result the number of classes in the trial version was reduced almost twice that evidently demostrates how much attention has been paid to optimization. Experience has shown that the trial version is up to 10 times slower than the registered version.
    Note: don't use the trial version for testing and benchmarking purposes!
  4. The GifEncoder class ignores the forceGlobalColorTableUsage option (see tutorial for more info). It can lead to the large gif file size if it contains a lot of internal frames (for example, after MorphingFilter use).

Registration benefits:

  • Full version of Gif4J Library without restrictions
  • Free bugs fixing
  • Free 3 months of technical support via e-mail
  • Free 3 months of major and minor updates

 REQUIREMENTS

  • Java supporting OS (like Windows 9x/ NT, Unix, Linux, MacOS ...)
  • JDK 1.2 or later (ImageIO support - JDK 1.4 or later)
  • RAM 32 MB

 FILES
lib\gif4j_trial_1.0.jar Gif4J Library java archive file
gif4j_license_agreement.txt Gif4J License Agreement
doc\tutorial.html Gif4J Tutorial in Html Format
examples Gif4J Library Examples
examples\ProducedByFullVersion To compare the trial and full versions this folder contains gif images which were produced by the same java examples but using the full Gif4J Library version.
 INSTALL

Import the gif4j_trial_1.0.jar file into your development environment, or add the file to your CLASSPATH.

 CONTACT

For comments about the web site, please send email to webmaster@gif4j.com

For technical questions and bug reports, please send email to support@gif4j.com. Please include additional information such as your platform environment (OS, JDK/JRE version, etc.) and steps to recreate the problem (examples source code, etc.)

For sales or licensing enquiries (OEM etc.), please send email to sales@gif4j.com

For all other enquiries, comments and questions, please send email to info@gif4j.com

Gif4J Library (Copyright © 2004 Gif4J Software)