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