From tridge@samba.anu.edu.au Tue Aug 17 14:35:06 1999
Sender: Andrew Tridgell tridge@samba.anu.edu.au
From: [omitted]
To: [omitted]
Subject: tip of the day (killing animated GIFs)
Date: Wed, 18 Aug 1999 07:34:15 +1000

Here is another tip of the day. If you don't want these sent to
allhands then pester somebody about a separate list :)

One of my pet hates is animated GIFs in web browsers. They are almost
as annoying as the blink tag. You can use a filtering proxy such a
JunkBuster to filter by URL but it is a constant effort to keep your
exclusion list up to date.

An alternative (or addition) is to make netscape treat animated GIFs a
bit differently. My favourite is to make netscape only show the first
cycle of any animated GIF and then immediately stop animating. This
allows you to see the full GIF without the annoying continual cycle.

You can do that by binary editing the netscape executable to change
the tags it uses to recognise animated GIFs. Here is a script you can
run to do this. I call it killanim and you would run it like this:

./killanim /usr/lib/netscape/netscape-communicator

if you have a RH6 box. Just use a different path for other
systems. I'm sure you'll all work it out.

Cheers, Tridge


#!/bin/sh

KILLSTRINGS="-e s/NETSCAPE2.0/DISABLEDXXX/g -e s/ANIMEXTS1.0/DISABLEDXXX/g"
FILE=$1

if [ ! -f $FILE ]; then
echo 'killanim FILENAME'
exit 1
fi

sed $KILLSTRINGS $FILE > $FILE.new &&
mv $FILE $FILE.orig &&
mv $FILE.new $FILE
chmod +x $FILE

Supress animated GIFs in Netscape

David Simmons
August 10, 1997

THE PROBLEM

In today's tangled web of "style over substance", glitter and glitz seem
to have overtaken informative content. A major characteristic of this
glitter on many web pages is the infamous "animated GIF", which is an
animation composed of multiple still image frames sequenced together to
give the illusion of motion, or to otherwise cause a continual change in
an image.

When reading the text of a web page, an animated image becomes visually
distracting. Some versions of Netscape have a "stop animations" options
that freeze the images, but this option must be selected explicitly
every time it is needed. Clearly, there should be some way to end
animations once and for all.

HOW ANIMATED GIFS WORK

Animated GIFs are implemented using the GIF89A specification for image
storage. This specification, formed in 1989, provides the option of
including multiple image frames in GIFs. When displayed, these image
frames are shown in sequence with a specified time delay between each.
After the last image is displayed, animation stops.

Netscape Communications, Inc. introduced an application extention to the
GIF89A specification (http://simmons.starkville.ms.us/tips/081097) which
designated "looping" to allow a GIF89A gif animation to return to the
first frame when the last frame is displayed, providing continuous
animation. The extention consists of the text "NETSCAPE2.0", probably
named after the version of Netscape's browser which first implemented
this extention. All animated GIFs you encounter on the web which loop
forever contain this extention.

THE SOLUTION

The ideal solution would be to have the web browser only display the
first frame of an animated GIF, as if the browser did not support GIF89A
animations. Nobody knows how to trick Netscape into doing this, short of
downgrading to version 1.0 of the software. A solution which is almost
as good is to display each frame of an animation, but stop at the last
frame and not loop. This can be accomplished by tricking Netscape into
ignoring the "NETSCAPE2.0" extension which specifies looping.

Deep inside the Netscape executable, the text "NETSCAPE2.0" is buried.
Netscape compares this string to extentions it sees in GIF images it
encounters. If this string in the executable is altered with a hex
editor to be any other arbitrary string, such as "SIMMONS42.0", then
Netscape will be looking for "SIMMONS42.0" in GIF images to determine if
it should loop them. If you are using a UNIX-based operating system, the
hex editor BPE (http://davidsimmons.com/tips/081097/bpe.tar.gz) is
recommended. Be sure that you are not running Netscape while making the
change, or BPE will not be able to modify the file.

To put it simply, use a hex editor to search for the string
"NETSCAPE2.0" in your Netscape executable, and change it to something
arbitrary of the same length like "SIMMONS42.0". Animated GIFs will
cycle through each frame once, then stop. Flashy web pages loaded with
animated gifs will come to a complete stop within a few seconds,
allowing you to enjoy the text without fear of distraction.

ADDENDUM (9/15/97)

John Robert LoVerso loverso@opengroup.org reported in a USENET posting
that the text "ANIMEXTS1.0" is also used sometimes to indicate a GIF89a
animation, and might need to be replaced as well as the "NETSCAPE2.0"
text.

ADDENDUM (10/21/99)

James Vasile vasile@iname.com has written a C program
(http://www.columbia.edu/~jvv2/gat.html) to disable
animated gifs in Netscape or Opera, and provides source and a Windows
executable.

REFERENCES

Graphics Interchange Format Version 89a,
http://davidsimmons.com/tips/081097/spec-gif89a.txt
BPE -- A hex editor for UNIX,
http://davidsimmons.com/tips/081097/bpe.tar.gz

David Simmons (http://davidsimmons.com/)
simmons@davidsimmons.com