Section courante

A propos

Section administrative du site

Introduction

L'extension «.GIF» permet d'indiquer un fichier graphique de format GIF (abréviation de «Graphics Interchange Format»). Il s'agit d'un format de fichier développé par CompuServe en 1987 utilisant un algorithme de compression LZW.

Spécification

Spécification Description
Type Bitmap
Méthode de compression LZW
Nombre maximum de couleurs 256 couleurs
Taille maximum de l'image 65536 x 65536 pixels
Supporte plusieurs images Oui, plusieurs images peuvent être présente dans un même fichier
Supporte la transparence Oui
Format des nombres Little-endian
Auteur CompuServe, Inc.
Plateforme MS-DOS, DR-DOS, Macintosh, Unix, Linux, Solaris, Amiga,...

Structure d'entête du fichier

Il fut très populaire dans les années 1990. Voici la structure de l'en-tête d'un fichier GIF 87a et 89a :

Déplacement Taille Description
00h à 05h 6 octets Nom du GIF ('GIF87a' ou 'GIF89a')
06h à 07h 1 mot Nombre de pixels sur l'axe des X
08h à 09h 1 mot Nombre de pixels sur l'axe des Y
0Ah 1 octet Information étendue
Bit(s) Description
0 à 2 Nombre de palettes :
 0: 2 palettes
 1: 4 palettes
 2: 8 palettes
 3: 16 palettes
 4: 32 palettes
 5: 64 palettes
 6: 128 palettes
 7: 256 palettes
3 à 7 Réservé
0Bh 1 octet Arrière plan (Background)

0Ch 1 octet Ratio
0Dh 3 * 2 << (déplacement 0Ah) ET LOGIQUE 7 octets Table de couleur (Color Map)
3 * 2 << (déplacement 0Ah) ET LOGIQUE 7 1 octet + Extra Identificateur
... 1 octet Identificateur

Structure de l'identificateur

Type Description
';' Fin
'!' Extension
Taille Description
Jusqu'à un code ASCII 0 soit rencontré Donnée de compression de l'image
',' Séparateur d'image
Déplacement Taille Description
00h à 03h 4 octets Réservé
04h à 05h 1 Mot Longueur (Nombre de pixels X)
06h à 07h 1 Mot Largeur (Nombre de pixels Y)
08h 1 octet Bits 0 à 2: Nombre de palettes :
Code Description
0 2 palettes
1 4 palettes
2 8 palettes
3 16 palettes
4 32 palettes
5 64 palettes
6 128 palettes
7 256 palettes
Bit 3 à 5: Réservé (??)
Bit 6: Interlacé
Bit 7: Drapeau de la table de couleur (Color Map Flag)
09h 1 octet Taille du code d'entrée (Valide de 2 à 11) Image...

Exemple

Voici un exemple montrant la structure de ce format suivant en Turbo Pascal 7 :

  1. Type
  2.   {Entête de fichier de format GIF}
  3.  HeaderGIF=Record
  4.   Sign,Ver:Array[0..2]of Char; { Signature et version (GIF87a ou GIF89a)}
  5.   NumXPixels,NumYPixels:Word;  { Largeur et hauteur de l'image en pixels }
  6.   ExtInfo,                     { Information de palettes }
  7.   Background,                  { Arrière plan }
  8.   AspectRatio:Byte;            { Ratio }
  9.  End;
  10.  
  11.   {Entête d'image du fichier de format GIF}
  12.  HeaderImageGIF=Record
  13.   Seperator:Byte;             { Séparateur ',' }
  14.   X1,Y1:Word;                 { Position X,Y ou commence l'image }
  15.   NumXPixels,NumYPixels:Word; { Largeur et hauteur de l'image }
  16.   ExtInfo:Byte;               { Information de palettes }
  17.  End;


Dernière mise à jour : Lundi, le 8 février 2016