Tekst graficzny ($01)
GIF89a przewidział sposób na zapisanie tekstu, który dekoder sam narysuje na obrazie, zamiast przechowywać go jako piksele. Pomysł nie przyjął się: prawie żadna przeglądarka ani program graficzny go nie obsługuje.
Budowa
| Bajty | Pole |
|---|---|
| 0-1 | 21 01: rozszerzenie, etykieta tekstu |
| 2 | długość bloku stałego: zawsze 0C (12) |
| 3-4 | położenie lewej krawędzi siatki tekstu |
| 5-6 | położenie górnej krawędzi |
| 7-8 | szerokość siatki w pikselach |
| 9-10 | wysokość siatki w pikselach |
| 11 | szerokość komórki znaku w pikselach |
| 12 | wysokość komórki znaku |
| 13 | indeks koloru tekstu (z palety globalnej) |
| 14 | indeks koloru tła |
| dalej | podbloki z tekstem ASCII, terminator 00 |
Tekst wypełnia siatkę komórek od lewej do prawej i z góry na dół. Na przykład siatka 80 × 16 pikseli przy komórce 8 × 16 mieści jeden wiersz 10 znaków.
Przykład
21 01 0C
00 00 00 00 lewo 0, góra 0
50 00 10 00 siatka 80 × 16
08 10 komórka 8 × 16
02 01 tekst kolorem 2 (czerń) na tle 1 (biel)
06 73 65 6D 6D 69 78 podblok: "semmix"
00 terminator
Dlaczego to nie działa
- Brak kroju pisma. Specyfikacja nie mówi, jakiej czcionki użyć. Każdy dekoder musiałby mieć własną, a wynik byłby różny w każdym programie.
- Tylko ASCII. Bez polskich znaków i innych alfabetów.
- Łatwiejsza alternatywa. Tekst wpisany w piksele obrazu wygląda wszędzie tak samo i nie wymaga niczego od dekodera.
Rozszerzenie warto znać tylko po to, żeby je poprawnie pominąć (zob. bloki rozszerzeń). Specyfikacja traktuje je jak blok rysujący, więc może je poprzedzać blok sterowania grafiką, tak jak obraz.