⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gif87a.doc

📁 Delphi direct support for GIF files
💻 DOC
📖 第 1 页 / 共 3 页
字号:
Graphics Interchange Format (GIF)                                    Page 6Specification 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 7Specification        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 8Specification 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 9Appendix A - Glossary                                 GLOSSARYPixel - 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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -