Ogólna budowa pliku GIF
Plik GIF to ciąg bloków ułożonych jeden za drugim. Każdy zaczyna się od bajtu, który mówi, czym jest, więc dekoder może czytać plik od początku do końca bez skakania i bez spisu treści.
Schemat
Dokładne zasady kolejności opisuje strona kolejność bloków.
Bajty rozpoznawcze
| Bajt | Znak ASCII | Blok |
|---|---|---|
| 2C | , | deskryptor obrazu |
| 21 | ! | rozszerzenie, następny bajt to etykieta |
| 3B | ; | koniec pliku |
Wartości wybrano tak, żeby były czytelnymi znakami: przecinek, wykrzyknik i średnik. W pierwszych wersjach formatu ułatwiało to przeglądanie plików i przesyłanie ich przez łącza tekstowe.
Podbloki danych
Dane o zmiennej długości (skompresowany obraz, tekst komentarza, dane aplikacji) dzieli się na podbloki. Każdy podblok zaczyna się bajtem długości od 1 do 255, po którym idzie tyle bajtów danych. Ciąg kończy podblok o długości 0, czyli terminator:
Dzięki temu dekoder może pominąć blok, którego nie rozumie: czyta bajty długości i przeskakuje dane, aż trafi na 00. Nie musi znać zawartości, żeby wiedzieć, gdzie blok się kończy.
Liczby little-endian
Liczby 16-bitowe (wymiary, położenie, opóźnienie) są zapisane od najmłodszego bajtu:
Pola bitowe
Kilka bloków ma bajt z flagami (packed fields), w którym poszczególne bity znaczą różne rzeczy. Bity numeruje się od najstarszego (7) do najmłodszego (0). Przykład z opisu ekranu logicznego:
Szczegóły każdego pola są na stronach o poszczególnych blokach. Pełny przykładowy plik rozpisany bajt po bajcie jest we wstępie.