GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


archive:computers:gifstd
                              G I F (tm)
                   Graphics Interchange Format (tm)
                    A standard defining a mechanism
                   for the storage and transmission
                 of raster-based graphics information
                             June 15, 1987
                   (c) CompuServe Incorporated, 1987
                          All rights reserved
          While this document is copyrighted, the information
        contained within is made available for use in computer
        software without royalties, or licensing restrictions.
        GIF and 'Graphics Interchange Format' are trademarks of
                       CompuServe, Incorporated.
                         an H&R Block Company
                      5000 Arlington Centre Blvd.
                         Columbus, Ohio 43220
                            (614) 457-8600

Page 2

            Graphics Interchange Format (GIF) Specification
                           Table of Contents
      INTRODUCTION . . . . . . . . . . . . . . . . . page 3
      GENERAL FILE FORMAT  . . . . . . . . . . . . . page 3
      GIF SIGNATURE  . . . . . . . . . . . . . . . . page 4
      SCREEN DESCRIPTOR  . . . . . . . . . . . . . . page 4
      GLOBAL COLOR MAP . . . . . . . . . . . . . . . page 5
      IMAGE DESCRIPTOR . . . . . . . . . . . . . . . page 6
      LOCAL COLOR MAP  . . . . . . . . . . . . . . . page 7
      RASTER DATA  . . . . . . . . . . . . . . . . . page 7
      GIF TERMINATOR . . . . . . . . . . . . . . . . page 8
      GIF EXTENSION BLOCKS . . . . . . . . . . . . . page 8
      APPENDIX A - GLOSSARY  . . . . . . . . . . . . page 9
      APPENDIX B - INTERACTIVE SEQUENCES . . . . . . page 10
      APPENDIX C - IMAGE PACKAGING & COMPRESSION . . page 12
      APPENDIX D - MULTIPLE IMAGE PROCESSING . . . . page 15

Graphics Interchange Format (GIF) Page 3 Specification

INTRODUCTION

      'GIF' (tm) is CompuServe's standard for defining generalized  color
 raster   images.    This   'Graphics  Interchange  Format'  (tm)  allows
 high-quality, high-resolution graphics to be displayed on a  variety  of
 graphics  hardware  and is intended as an exchange and display mechanism
 for graphics images.  The image format described  in  this  document  is
 designed  to  support  current  and  future image technology and will in
 addition serve as a basis for future CompuServe graphics products.
      The main focus  of  this  document  is  to  provide  the  technical
 information  necessary  for  a  programmer to implement GIF encoders and
 decoders.  As such, some assumptions are made as to terminology relavent
 to graphics and programming in general.
      The first section of this document describes the  GIF  data  format
 and its components and applies to all GIF decoders, either as standalone
 programs or as part of  a  communications  package.   Appendix  B  is  a
 section  relavent to decoders that are part of a communications software
 package and describes the protocol requirements for entering and exiting
 GIF mode, and responding to host interrogations.  A glossary in Appendix
 A defines some of the terminology used in  this  document.   Appendix  C
 gives  a  detailed  explanation  of  how  the  graphics  image itself is
 packaged as a series of data bytes.
              Graphics Interchange Format Data Definition

GENERAL FILE FORMAT

      +-----------------------+
      | +-------------------+ |
      | |   GIF Signature   | |
      | +-------------------+ |
      | +-------------------+ |
      | | Screen Descriptor | |
      | +-------------------+ |
      | +-------------------+ |
      | | Global Color Map  | |
      | +-------------------+ |
      . . .               . . .
      | +-------------------+ |    ---+   
      | |  Image Descriptor | |       |   
      | +-------------------+ |       |   
      | +-------------------+ |       |  
      | |  Local Color Map  | |       |-   Repeated 1 to n times
      | +-------------------+ |       |   
      | +-------------------+ |       |   
      | |    Raster Data    | |       |   
      | +-------------------+ |    ---+   
      . . .               . . .   
      |-    GIF Terminator   -|   
      +-----------------------+

Graphics Interchange Format (GIF) Page 4 Specification

GIF SIGNATURE

      The following GIF Signature identifies  the  data  following  as  a
 valid GIF image stream.  It consists of the following six characters:
           G I F 8 7 a
      The last three characters '87a' may be viewed as a  version  number
 for  this  particular  GIF  definition  and will be used in general as a
 reference  in  documents  regarding  GIF  that   address   any   version
 dependencies.

SCREEN DESCRIPTOR

      The Screen Descriptor describes the overall parameters for all  GIF
 images  following.  It defines the overall dimensions of the image space
 or logical screen required, the existance of color mapping  information,
 background  screen color, and color depth information.  This information
 is stored in a series of 8-bit bytes as described below.
            bits
       7 6 5 4 3 2 1 0  Byte #
      +---------------+
      |               |  1
      +-Screen Width -+      Raster width in pixels (LSB first)
      |               |  2
      +---------------+
      |               |  3
      +-Screen Height-+      Raster height in pixels (LSB first)
      |               |  4
      +-+-----+-+-----+      M = 1, Global color map follows Descriptor
      |M|  cr |0|pixel|  5   cr+1 = # bits of color resolution
      +-+-----+-+-----+      pixel+1 = # bits/pixel in image
      |   background  |  6   background=Color index of screen background
      +---------------+          (color is defined from the Global color
      |0 0 0 0 0 0 0 0|  7        map or default map if none specified)
      +---------------+
      The logical screen width and height can both  be  larger  than  the
 physical  display.   How  images  larger  than  the physical display are
 handled is implementation dependent and can take advantage  of  hardware
 characteristics  (e.g.   Macintosh scrolling windows).  Otherwise images
 can be clipped to the edges of the display.
      The value of 'pixel' also defines  the  maximum  number  of  colors
 within  an  image.   The  range  of  values  for 'pixel' is 0 to 7 which
 represents 1 to 8 bits.  This translates to a range of 2 (B & W) to  256
 colors.   Bit  3 of word 5 is reserved for future definition and must be
 zero.

Graphics Interchange Format (GIF) Page 5 Specification

GLOBAL COLOR MAP

      The Global Color Map is optional but recommended for  images  where
 accurate color rendition is desired.  The existence of this color map is
 indicated in the 'M' field of byte 5 of the Screen Descriptor.  A  color
 map  can  also  be associated with each image in a GIF file as described
 later.  However this  global  map  will  normally  be  used  because  of
 hardware  restrictions  in equipment available today.  In the individual
 Image Descriptors the 'M' flag will normally be  zero.   If  the  Global
 Color  Map  is  present,  it's definition immediately follows the Screen
 Descriptor.   The  number  of  color  map  entries  following  a  Screen
 Descriptor  is equal to 2**(# bits per pixel), where each entry consists
 of three byte values representing the relative intensities of red, green
 and blue respectively.  The structure of the Color Map block is:
            bits
       7 6 5 4 3 2 1 0  Byte #
      +---------------+
      | red intensity |  1    Red value for color index 0
      +---------------+
      |green intensity|  2    Green value for color index 0
      +---------------+
      | blue intensity|  3    Blue value for color index 0
      +---------------+
      | red intensity |  4    Red value for color index 1
      +---------------+
      |green intensity|  5    Green value for color index 1
      +---------------+
      | blue intensity|  6    Blue value for color index 1
      +---------------+
      :               :       (Continues for remaining colors)
      Each image pixel value received will be displayed according to  its
 closest match with an available color of the display based on this color
 map.  The color components represent a fractional intensity  value  from
 none  (0)  to  full (255).  White would be represented as (255,255,255),
 black as (0,0,0) and medium yellow as (180,180,0).  For display, if  the
 device  supports fewer than 8 bits per color component, the higher order
 bits of each component are used.  In the creation of  a  GIF  color  map
 entry  with  hardware  supporting  fewer  than 8 bits per component, the
 component values for the hardware  should  be  converted  to  the  8-bit
 format with the following calculation:
      <map_value> = <component_value>*255/(2**<nbits> -1)
      This assures accurate translation of colors for all  displays.   In
 the  cases  of  creating  GIF images from hardware without color palette
 capability, a fixed palette should be created  based  on  the  available
 display  colors for that hardware.  If no Global Color Map is indicated,
 a default color map is generated internally  which  maps  each  possible
 incoming  color  index to the same hardware color index modulo <n> where
 <n> is the number of available hardware colors.

Graphics Interchange Format (GIF) Page 6 Specification

IMAGE DESCRIPTOR

      The Image Descriptor defines the actual placement  and  extents  of
 the  following  image within the space defined in the Screen Descriptor.
 Also defined are flags to indicate the presence of a local color  lookup
 map, and to define the pixel display sequence.  Each Image Descriptor is
 introduced by an image separator  character.   The  role  of  the  Image
 Separator  is simply to provide a synchronization character to introduce
 an Image Descriptor.  This is desirable if a GIF file happens to contain
 more  than  one  image.   This  character  is defined as 0x2C hex or ','
 (comma).  When this character is encountered between images,  the  Image
 Descriptor will follow immediately.
      Any characters encountered between the end of a previous image  and
 the image separator character are to be ignored.  This allows future GIF
 enhancements to be present in newer image formats and yet ignored safely
 by older software decoders.
            bits
       7 6 5 4 3 2 1 0  Byte #
      +---------------+
      |0 0 1 0 1 1 0 0|  1    ',' - Image separator character
      +---------------+
      |               |  2    Start of image in pixels from the
      +-  Image Left -+       left side of the screen (LSB first)
      |               |  3
      +---------------+
      |               |  4
      +-  Image Top  -+       Start of image in pixels from the
      |               |  5    top of the screen (LSB first)
      +---------------+
      |               |  6
      +- Image Width -+       Width of the image in pixels (LSB first)
      |               |  7
      +---------------+
      |               |  8
      +- Image Height-+       Height of the image in pixels (LSB first)
      |               |  9
      +-+-+-+-+-+-----+       M=0 - Use global color map, ignore 'pixel'
      |M|I|0|0|0|pixel| 10    M=1 - Local color map follows, use 'pixel'
      +-+-+-+-+-+-----+       I=0 - Image formatted in Sequential order
                              I=1 - Image formatted in Interlaced order
                              pixel+1 - # bits per pixel for this image
      The specifications for the image position and size must be confined
 to  the  dimensions defined by the Screen Descriptor.  On the other hand
 it is not necessary that the image fill the entire screen defined.

LOCAL COLOR MAP Graphics Interchange Format (GIF) Page 7 Specification

      A Local Color Map is optional and defined here for future use.   If
 the  'M' bit of byte 10 of the Image Descriptor is set, then a color map
 follows the Image Descriptor that applies only to the  following  image.
 At the end of the image, the color map will revert to that defined after
 the Screen Descriptor.  Note that the 'pixel' field of byte  10  of  the
 Image  Descriptor  is used only if a Local Color Map is indicated.  This
 defines the parameters not only for the image pixel size, but determines
 the  number  of color map entries that follow.  The bits per pixel value
 will also revert to the value specified in the  Screen  Descriptor  when
 processing of the image is complete.

RASTER DATA

      The format of the actual image is defined as the  series  of  pixel
 color  index  values that make up the image.  The pixels are stored left
 to right sequentially for an image row.  By default each  image  row  is
 written  sequentially, top to bottom.  In the case that the Interlace or
 'I' bit is set in byte 10 of the Image Descriptor then the row order  of
 the  image  display  follows  a  four-pass process in which the image is
 filled in by widely spaced rows.  The first pass writes every  8th  row,
 starting  with  the top row of the image window.  The second pass writes
 every 8th row starting at the fifth row from the top.   The  third  pass
 writes every 4th row starting at the third row from the top.  The fourth
 pass completes the image, writing  every  other  row,  starting  at  the
 second row from the top.  A graphic description of this process follows:
 Image
 Row  Pass 1  Pass 2  Pass 3  Pass 4          Result
 ---------------------------------------------------
   0  **1a**                                  **1a**
   1                          **4a**          **4a**
   2                  **3a**                  **3a**
   3                          **4b**          **4b**
   4          **2a**                          **2a**
   5                          **4c**          **4c**
   6                  **3b**                  **3b**
   7                          **4d**          **4d**
   8  **1b**                                  **1b**
   9                          **4e**          **4e**
  10                  **3c**                  **3c**
  11                          **4f**          **4f**
  12          **2b**                          **2b**
 . . . 
      The image pixel values are processed as a series of  color  indices
 which  map  into the existing color map.  The resulting color value from
 the map is what is actually displayed.  This series  of  pixel  indices,
 the  number  of  which  is equal to image-width*image-height pixels, are
 passed to the GIF image data stream one value per pixel, compressed  and
 packaged  according  to  a  version  of the LZW compression algorithm as
 defined in Appendix C.

Graphics Interchange Format (GIF) Page 8 Specification

GIF TERMINATOR

      In order to provide a synchronization for the termination of a  GIF
 image  file,  a  GIF  decoder  will process the end of GIF mode when the
 character 0x3B hex or ';' is found after an image  has  been  processed.
 By  convention  the  decoding software will pause and wait for an action
 indicating that the user is ready to continue.  This may be  a  carriage
 return  entered  at  the  keyboard  or  a  mouse click.  For interactive
 applications this user action must  be  passed  on  to  the  host  as  a
 carriage  return  character  so  that the host application can continue.
 The decoding software will then typically leave graphics mode and resume
 any previous process.

GIF EXTENSION BLOCKS

      To provide for orderly extension of the GIF definition, a mechanism
 for  defining  the  packaging  of extensions within a GIF data stream is
 necessary.  Specific GIF extensions are to be defined and documented  by
 CompuServe in order to provide a controlled enhancement path.
      GIF Extension Blocks are packaged in a manner similar to that  used
 by the raster data though not compressed.  The basic structure is:
       7 6 5 4 3 2 1 0  Byte #
      +---------------+
      |0 0 1 0 0 0 0 1|  1       '!' - GIF Extension Block Introducer
      +---------------+
      | function code |  2       Extension function code (0 to 255)
      +---------------+    ---+
      |  byte count   |       |
      +---------------+       |
      :               :       +-- Repeated as many times as necessary
      |func data bytes|       |
      :               :       |
      +---------------+    ---+
      . . .       . . .
      +---------------+
      |0 0 0 0 0 0 0 0|       zero byte count (terminates block)
      +---------------+
      A GIF Extension Block may immediately preceed any Image  Descriptor
 or occur before the GIF Terminator.
      All GIF decoders must be able to recognize  the  existence  of  GIF
 Extension  Blocks  and  read past them if unable to process the function
 code.  This ensures that older decoders will be able to process extended
 GIF   image   files   in  the  future,  though  without  the  additional
 functionality.

Graphics Interchange Format (GIF) Page 9 Appendix A - Glossary

                               GLOSSARY

Pixel - The smallest picture element of a graphics image. This usually

 corresponds  to  a single dot on a graphics screen.  Image resolution is
 typically given in units of  pixels.   For  example  a  fairly  standard
 graphics  screen  format  is  one 320 pixels across and 200 pixels high.
 Each pixel can  appear  as  one  of  several  colors  depending  on  the
 capabilities of the graphics hardware.

Raster - A horizontal row of pixels representing one line of an image. A

 typical method of working with images since most hardware is oriented to
 work most efficiently in this manner.

LSB - Least Significant Byte. Refers to a convention for two byte numeric

 values in which the less significant byte of the value preceeds the more
 significant byte.  This convention is typical on many microcomputers.

Color Map - The list of definitions of each color used in a GIF image.

 These  desired  colors are converted to available colors through a table
 which is derived by assigning an incoming color index (from  the  image)
 to  an  output  color  index  (of  the  hardware).   While the color map
 definitons are specified in a GIF image, the output  pixel  colors  will
 vary  based  on  the  hardware used and its ability to match the defined
 color.

Interlace - The method of displaying a GIF image in which multiple passes

 are  made,  outputting  raster  lines  spaced  apart to provide a way of
 visualizing the general content of an entire image  before  all  of  the
 data has been processed.

B Protocol - A CompuServe-developed error-correcting file transfer protocol

 available  in  the  public  domain  and implemented in CompuServe VIDTEX
 products.  This error checking mechanism will be used  in  transfers  of
 GIF images for interactive applications.

LZW - A sophisticated data compression algorithm based on work done by

 Lempel-Ziv  &  Welch  which  has  the feature of very efficient one-pass
 encoding and decoding.  This allows the image  to  be  decompressed  and
 displayed  at  the  same  time.   The  original  article from which this
 technique was adapted is:
        Terry  A.   Welch,  "A  Technique  for  High   Performance   Data
        Compression", IEEE Computer, vol 17 no 6 (June 1984)
      This basic algorithm is also used in the  public  domain  ARC  file
 compression  utilities.   The  CompuServe  adaptation  of LZW for GIF is
 described in Appendix C.

Graphics Interchange Format (GIF) Page 10 Appendix B - Interactive Sequences

         GIF Sequence Exchanges for an Interactive Environment
      The following sequences are defined for use  in  mediating  control
 between a GIF sender and GIF receiver over an interactive communications
 line.  These  sequences  do  not  apply  to  applications  that  involve
 downloading  of  static  GIF  files and are not considered part of a GIF
 file.

GIF CAPABILITIES ENQUIRY

      The GCE sequence is issued from a host and requests an  interactive
 GIF  decoder  to  return  a  response  message that defines the graphics
 parameters for the decoder.  This involves returning  information  about
 available screen sizes, number of bits/color supported and the amount of
 color detail supported.  The escape sequence for the GCE is defined as:
      ESC [ > 0 g     (g is lower case, spaces inserted for clarity)
                       (0x1B 0x5B 0x3E 0x30 0x67)

GIF CAPABILITIES RESPONSE

      The GIF Capabilities Response message is returned by an interactive
 GIF  decoder  and  defines  the  decoder's  display capabilities for all
 graphics modes that are supported by the software.  Note that  this  can
 also include graphics printers as well as a monitor screen.  The general
 format of this message is:
   #version;protocol{;dev, width, height, color-bits, color-res}... <CR>
 '#'          - GCR identifier character (Number Sign)
 version      - GIF format version number;  initially '87a'
 protocol='0' - No end-to-end protocol supported by decoder
                Transfer as direct 8-bit data stream.
 protocol='1' - Can use an error correction protocol to transfer GIF data
             interactively from the host directly to the display.
 dev = '0'    - Screen parameter set follows
 dev = '1'    - Printer parameter set follows
 width        - Maximum supported display width in pixels
 height       - Maximum supported display height in pixels
 color-bits   - Number of  bits  per  pixel  supported.   The  number  of
             supported colors is therefore 2**color-bits.
 color-res    - Number of bits  per  color  component  supported  in  the
             hardware  color  palette.   If  color-res  is  '0'  then  no
             hardware palette table is available.
      Note that all values in the  GCR  are  returned  as  ASCII  decimal
 numbers and the message is terminated by a Carriage Return character.

Graphics Interchange Format (GIF) Page 11 Appendix B - Interactive Sequences

      The  following   GCR   message   describes   three   standard   EGA
 configurations  with  no  printer;  the GIF data stream can be processed
 within an error correcting protocol:
      #87a;1 ;0,320,200,4,0 ;0,640,200,2,2 ;0,640,350,4,2<CR>

ENTER GIF GRAPHICS MODE

      Two sequences are currently defined to invoke  an  interactive  GIF
 decoder into action.  The only difference between them is that different
 output media are selected.  These sequences are:
   ESC [ > 1 g   Display GIF image on screen
                 (0x1B 0x5B 0x3E 0x31 0x67)
   ESC [ > 2 g   Display image directly to an attached graphics  printer.
                 The  image  may optionally be displayed on the screen as
                 well.
                 (0x1B 0x5B 0x3E 0x32 0x67)
      Note that the 'g' character terminating each sequence is  in  lower
 case.

INTERACTIVE ENVIRONMENT

      The assumed environment for the transmission of GIF image data from
 an  interactive  application  is  a  full 8-bit data stream from host to
 micro.  All 256 character codes must be transferrable.  The establishing
 of  an 8-bit data path for communications will normally be taken care of
 by the host application programs.  It is however  up  to  the  receiving
 communications programs supporting GIF to be able to receive and pass on
 all 256 8-bit codes to the GIF decoder software.

Graphics Interchange Format (GIF) Page 12 Appendix C - Image Packaging & Compression

      The Raster Data stream that represents the actual output image  can
 be represented as:
       7 6 5 4 3 2 1 0
      +---------------+
      |   code size   | 
      +---------------+     ---+
      |blok byte count|        |
      +---------------+        |
      :               :        +-- Repeated as many times as necessary
      |  data bytes   |        |
      :               :        |
      +---------------+     ---+
      . . .       . . .
      +---------------+
      |0 0 0 0 0 0 0 0|       zero byte count (terminates data stream)
      +---------------+
      The conversion of the image from a series  of  pixel  values  to  a
 transmitted or stored character stream involves several steps.  In brief
 these steps are:
 1.  Establish the Code Size -  Define  the  number  of  bits  needed  to
     represent the actual data.
 2.  Compress the Data - Compress the series of image pixels to a  series
     of compression codes.
 3.  Build a Series of Bytes - Take the  set  of  compression  codes  and
     convert to a string of 8-bit bytes.
 4.  Package the Bytes - Package sets of bytes into blocks  preceeded  by
     character counts and output.

ESTABLISH CODE SIZE

      The first byte of the GIF Raster Data stream is a value  indicating
 the minimum number of bits required to represent the set of actual pixel
 values.  Normally this will be the same as the  number  of  color  bits.
 Because  of  some  algorithmic constraints however, black & white images
 which have one color bit must be indicated as having a code size  of  2.
 This  code size value also implies that the compression codes must start
 out one bit longer.

COMPRESSION

      The LZW algorithm converts a series of data values into a series of
 codes  which may be raw values or a code designating a series of values.
 Using text characters as an analogy,  the  output  code  consists  of  a
 character or a code representing a string of characters.

Graphics Interchange Format (GIF) Page 13 Appendix C - Image Packaging & Compression

      The LZW algorithm used in  GIF  matches  algorithmically  with  the
 standard LZW algorithm with the following differences:
 1.  A   special   Clear   code   is    defined    which    resets    all
     compression/decompression parameters and tables to a start-up state.
     The value of this code is 2**<code size>.  For example if  the  code
     size  indicated  was 4 (image was 4 bits/pixel) the Clear code value
     would be 16 (10000 binary).  The Clear code can appear at any  point
     in the image data stream and therefore requires the LZW algorithm to
     process succeeding codes as if  a  new  data  stream  was  starting.
     Encoders  should output a Clear code as the first code of each image
     data stream.
 2.  An End of Information code is defined that explicitly indicates  the
     end  of  the image data stream.  LZW processing terminates when this
     code is encountered.  It must be the last code output by the encoder
     for an image.  The value of this code is <Clear code>+1.
 3.  The first available compression code value is <Clear code>+2.
 4.  The output codes are of variable length, starting  at  <code size>+1
     bits  per code, up to 12 bits per code.  This defines a maximum code
     value of 4095 (hex FFF).  Whenever the LZW code value  would  exceed
     the  current  code length, the code length is increased by one.  The
     packing/unpacking of these codes must then be altered to reflect the
     new code length.

BUILD 8-BIT BYTES

      Because the LZW compression  used  for  GIF  creates  a  series  of
 variable  length  codes, of between 3 and 12 bits each, these codes must
 be reformed into a series of 8-bit bytes that  will  be  the  characters
 actually stored or transmitted.  This provides additional compression of
 the image.  The codes are formed into a stream of bits as if  they  were
 packed  right to left and then picked off 8 bits at a time to be output.
 Assuming a character array of 8 bits per character and using 5 bit codes
 to be packed, an example layout would be similar to:
       byte n       byte 5   byte 4   byte 3   byte 2   byte 1
      +-.....-----+--------+--------+--------+--------+--------+
      | and so on |hhhhhggg|ggfffffe|eeeedddd|dcccccbb|bbbaaaaa|
      +-.....-----+--------+--------+--------+--------+--------+
      Note that the physical  packing  arrangement  will  change  as  the
 number  of  bits per compression code change but the concept remains the
 same.

PACKAGE THE BYTES

      Once the bytes have been created, they are grouped into blocks  for
 output by preceeding each block of 0 to 255 bytes with a character count
 byte.  A block with a zero byte count terminates the Raster Data  stream
 for  a  given  image.  These blocks are what are actually output for the

Graphics Interchange Format (GIF) Page 14 Appendix C - Image Packaging & Compression

 GIF image.  This block format has the side effect of allowing a decoding
 program  the  ability to read past the actual image data if necessary by
 reading block counts and then skipping over the data.

Graphics Interchange Format (GIF) Page 15 Appendix D - Multiple Image Processing

      Since a  GIF  data  stream  can  contain  multiple  images,  it  is
 necessary  to  describe  processing and display of such a file.  Because
 the image descriptor allows  for  placement  of  the  image  within  the
 logical  screen,  it is possible to define a sequence of images that may
 each be a partial screen, but in total  fill  the  entire  screen.   The
 guidelines for handling the multiple image situation are:
 1.  There is no pause between images.  Each is processed immediately  as
     seen by the decoder.
 2.  Each image explicitly overwrites any image  already  on  the  screen
     inside  of  its window.  The only screen clears are at the beginning
     and end of the  GIF  image  process.   See  discussion  on  the  GIF
     terminator.
/data/webs/external/dokuwiki/data/pages/archive/computers/gifstd.txt · Last modified: 1999/08/01 17:51 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki