| |
| |  |  |  | |  |
status of this document: work in progress
| Table of Contents
Last updated: Jan. 14. 1998
|
Basic
Description
ANI files hold the animated cursors for Win95
and WinNT. The file is a specialized RIFF .
You should read the page on RIFFs first. |
Basic
File Format
An ANI file contains a RIFF Chunk with a HeaderID
of 'ACON'. This RIFF Chunk must contain at least two subchunks: The header
chunk 'anih' and a 'LIST' chunk containing one or more images. In addition
to those it may contain a sequence chunk 'seq ' and a frame rate control
chunk 'rate'.
Basic File Layout
| Name |
ID |
| RIFF |
HeaderID = 'ACON' |
| |
anih |
header chunk |
| LIST |
HeaderID = 'fram' |
| |
icon |
single frame |
| ... |
|
| seq |
(optional) specifies the display sequence
of frames. Notice the space after the 'q'. |
| rate |
(optional) specifies the display timing
of frames |
|
Structure of the
'anih' header chunk.
| Name |
Size |
Description |
| HeaderSize |
4 bytes |
size of this structure (=32) |
| NumFrames |
4 bytes |
number of stored frames in this animation |
| NumSteps |
4 bytes |
number of steps in this animation (may
include duplicate frames, = NumFrames, if no 'seq '-chunk is present) |
| Width |
4 bytes |
total width in pixels |
| Height |
4 bytes |
total height in pixels |
| BitCount |
4 bytes |
number of bits/pixel ColorDepth
= 2BitCount |
| NumPlanes |
4 bytes |
=1 |
| DisplayRate |
4 bytes |
default display rate in 1/60s (Rate
= 60 / DisplayRate fps) |
| Flags |
4 bytes |
currently only 2 bits are used |
| |
reserved |
bits 31..2 |
unused =0 |
| SequenceFlag |
bit 1 |
TRUE: File contains sequence data |
| IconFlag |
bit 0 |
TRUE: Frames are icon or cursor data
FALSE: Frames are raw data |
|
Structure of the
'icon' chunks
Depending on the anih.Flags.IconFlag these
chunks will contain either icon and cursor resources or raw images. Icons
and cursors can be mixed within a file, but not together with raw images.
If the file contains icons and cursors, they are included in their respective
format, including their header. The first 4 bytes decide what format they
are in. There are pages on both, ICO and CUR
resources in this collection.
Raw images are BMP
files, stored without their header, using the Width, Height, BitCount and
NumPlanes information in 'anih' for decoding.
- Whether the BMP's color map should be
included if BitCount <= 8 is unknown. I haven't seen a ANI with raw
images yet. |
Structure of the
'seq ' chunk
Notice the space after the 'q' in 'seq '.
This chunk defines an order in which the frames are to be displayed, referring
to the order in which they appear in the 'fram' - list. There may very
well be a 'seq '-chunk without a 'rate' chunk. If there is no 'seq '-chunk
in the file, frames will be displayed in the order in which they appear
in the frame list. If an ANI file is used as MS-Windows' cursor, the sequence
will loop. There is no way of influencing that behavior.
| Name |
Size |
Description |
| |
Rate |
4 bytes |
Frame Number 0 |
| repeated anih.NumSteps times |
|
Structure of the
'rate' chunk
This chunk defines a display rate (in 1/60th
sec) for every frame in the sequence. If there is no 'seq '-chunk in the
file, it defines a display rate for every frame in the 'fram' - list.
| Name |
Size |
Description |
| |
Rate |
4 bytes |
Display rate for frame 0 |
| repeated anih.NumSteps times |
|
Portability
I haven't seen any implementation of ANI software
on other systems than MS-Windows95 and NT. But there is no reason why it
can't be done, although it is questionable, why someone would want to do
that. A full implementation would have to decode BMP, CUR and ICO structures.
It doesn't have to include a full-sized RIFF decoder, since the structure
of ANIs is fixed. See the RIFF, BMP,
ICO and CUR
page for additional information. |
Trademarks,
Patents and Royalties
To my knowledge: none
(please read the disclaimer) |
Cross-Checking
Software
This section is for programmers, who wish
to cross-check their implementation with others. This is an incomplete
list of programs, which are available as freeware / shareware / try-before-buy
etc.
The following software is able to decode
ANIs::
-
MS-Windows 95 (obviously not freeware)
-
MS-Windows NT 4 (ditto)
The following software is able to encode ANIs
|
Online
Resources
|
Paper
Resources
|
|  | |  |  | |
|
| |
Disclaimer
| |  |  |  | |  |
This is not the official format documentation.
Although we're doing our best to keep this information as accurate as possible,
there is no way of checking all of it under all possible circumstances.
We're not taking any responsibility for the results of this information
or lack thereof. The 'trademarks, patents and royalties' section is here
just for your convenience, and is in no way complete. Please send us a
note, if you find any incorrect of missing information to fileformats@daubnet.com.
|  | |  |  | |
|