Ga naar de hoofdinhoud

Bestandsformaten

Wat is GIF? 256 kleuren, animatie en LZW-compressie

GIF bestaat al sinds 1987: beperkt tot 256 kleuren, maar nog springlevend dankzij animatie. Zo werkt het, daarom levert het grote bestanden op en dan kies je beter een ander formaat.

Auteur: Hemen Dönüştür Editör EkibiGepubliceerd: 7 min lezen

Omslagafbeelding van de gids over het GIF-formaat

GIF (Graphics Interchange Format) is een van de oudste afbeeldingsformaten op het web. Foto's verloor het al lang geleden aan JPG en graphics aan PNG, maar bij korte, herhalende animaties denkt iedereen nog altijd eerst aan GIF. Dit artikel legt uit hoe GIF begon, hoe de compressie en animatie werken, wat de grens van 256 kleuren echt betekent en welke formaten je in plaats daarvan kunt overwegen.

Een korte geschiedenis

GIF werd ontwikkeld door CompuServe, een van de grote onlinediensten van die tijd. Volgens het register PRONOM van de Britse National Archives verscheen de eerste versie, GIF87a, op 15 juni 1987. De volgende versie, GIF89a, dankt haar naam aan 1989; de specificatietekst, vermeld door PRONOM en gehost door het W3C, is gedateerd 31 juli 1990. 89a voegde de Graphic Control Extension toe, die de vertraging per frame, de transparantie en de verwijderingsmethode vastlegt, plus extensies voor commentaar, platte tekst en toepassingen. De geanimeerde GIF's van vandaag zijn op deze extensies gebouwd.

Het bekendste hoofdstuk uit het verhaal van GIF is het patentconflict. GIF wordt gecomprimeerd met LZW, een algoritme waarop Unisys patent had. Volgens de formaatbeschrijving van de Library of Congress werd GIF in 1994 berucht toen Unisys licentiekosten voor LZW begon te vragen. Dat leidde tot de ontwikkeling van PNG als patentvrij alternatief. Volgens dezelfde bron verliep het Amerikaanse patent van Unisys in juni 2003 en de Europese en Japanse patenten in juni 2004, dus voor het gebruik van GIF is vandaag geen licentie meer nodig.

Hoe GIF werkt

Het palet en de grens van 256 kleuren

GIF slaat de kleur van elke pixel niet rechtstreeks op, maar een index naar een kleurentabel (palet). Volgens de specificatie kan een kleurentabel maximaal 256 kleuren bevatten, elk een 24-bits RGB-kleur. Een globale tabel kan voor het hele bestand gelden, en elk frame kan daarnaast een eigen lokale tabel hebben. Logo's en illustraties met weinig kleuren blijven makkelijk binnen die grens, terwijl foto's met duizenden tinten kleurbanden of ditheringpatronen tonen als ze tot 256 kleuren worden teruggebracht.

LZW-compressie

De pixelindexen worden verliesvrij gecomprimeerd met LZW, dat codes van wisselende lengte gebruikt; de specificatie staat codes tot 12 bits toe. LZW werkt door herhaalde pixelreeksen aan een woordenboek toe te voegen, dus het presteert goed op grote egale kleurvlakken en slecht op foto's met ruis.

Transparantie

In GIF89a kan de Graphic Control Extension één paletkleur als "transparant" markeren. Dat is aan/uit-transparantie (binair): een pixel is volledig zichtbaar of volledig doorzichtig. Daarom zien halfdoorzichtige schaduwen en zachte randen er in GIF gekarteld uit, en daarom is een lichte "halo" langs de randen op een gekleurde achtergrond zo'n veelvoorkomend probleem.

Animatie

Een geanimeerde GIF is een reeks frames in één bestand. De Graphic Control Extension van elk frame legt vast hoe lang het in beeld blijft, in honderdsten van een seconde, en hoe het gebied wordt leeggemaakt vóór het volgende frame. Informatie over herhalen staat in een toepassingsextensie. Met optionele interlacing verschijnt de afbeelding geleidelijk tijdens het laden.

Verwijderingsmethoden voor frames

De specificatie definieert vier waarden voor wat er met het gebied van een frame gebeurt nadat het is getoond: geen verwijdering opgegeven, het frame laten staan, het gebied herstellen naar de achtergrondkleur, en het gebied herstellen naar wat er daarvoor stond. In goed gemaakte animaties wordt alleen het gebied dat verandert als nieuw frame weggeschreven en wordt de rest van het vorige frame overgenomen; zo blijft het bestand klein. Daarom moeten tools die een GIF bewerken werken met volledige beelden die volgens deze regels zijn samengesteld, en niet met de losse ruwe frames.

Hoe veel wordt GIF gebruikt?

Gegevens van W3Techs uit oktober 2026 tonen GIF op 13,2% van de gevolgde websites. Volgens de Web Almanac 2024 van HTTP Archive is 16,8% van de afbeeldingen op mobiele pagina's GIF; volgens het rapport is 32% van die GIF's geanimeerd. Het rapport merkt ook op dat ongeveer 6% van alle afbeeldingsverzoeken afbeeldingen van 1x1 pixel zijn, hoogstwaarschijnlijk trackingpixels en spacer-GIF's, dus het hoge aandeel van GIF komt niet alleen van animaties.

Qua efficiëntie loopt GIF ver achter. Hetzelfde rapport zet de mediane GIF op 6,7 bits per pixel, tegenover 3,8 voor PNG, 2,0 voor JPEG en 1,3 voor WebP. Bij geanimeerde GIF's stijgt de mediaan naar 32,6 bits, terwijl niet-geanimeerde GIF's op 3,5 bits blijven.

Wat kan GIF vervangen?

De gids over afbeeldingsformaten van MDN ziet GIF als een goede keuze voor eenvoudige afbeeldingen en animaties, maar stelt PNG voor bij verliesvrije en geïndexeerde stilstaande beelden en WebP, AVIF of APNG bij animatiereeksen. Voor lange animaties of animaties uit echte beelden is video veel efficiënter: in het voorbeeld op web.dev krimpt een GIF van 3,7 MB tot 551 KB als MP4 en 341 KB als WebM.

BehoefteAdvies
Stilstaand logo, icoon, graphic met egale kleurenPNG of SVG
Korte animatie met weinig kleuren (zoals een laadicoon)GIF, APNG of geanimeerde WebP
Animatie uit videobeelden of een schermopnameEen stille, herhalende MP4- of WebM-video
Animatie die overal moet afspelen (e-mail, berichtenapps)GIF; nog altijd het formaat met de breedste compatibiliteit

Mailprogramma's en sommige berichtenapps spelen geen video af en tonen geen geanimeerde WebP. Die universele compatibiliteit is de echte reden dat GIF al meer dan drie decennia overleeft.

Veelvoorkomende problemen

De GIF is te groot

Het aantal frames, de afmetingen in pixels en de hoeveelheid beweging maken het bestand allemaal direct groter. De afmetingen verkleinen, de frames bijsnijden of een kort stuk eruit knippen zijn de doeltreffendste oplossingen; voor lange clips is overstappen op video de betere keuze.

Kleuren zien er gestreept of gestippeld uit

Dat is het natuurlijke gevolg van de grens van 256 kleuren. Vloeiende verlopen zoals luchten of huidtinten hebben er het meest last van. Gebruik voor fotoachtige inhoud JPG, WebP of video in plaats van GIF.

Er zit een witte rand langs de randen

Omdat transparante GIF's niet halfdoorzichtig kunnen zijn, toont een afbeelding die op een lichte achtergrond is gemaakt haar tussenliggende randtinten als je haar op een donkere achtergrond zet. Gebruik voor transparante afbeeldingen met zachte randen PNG of WebP.

De animatie stopte na de conversie

PNG en JPG ondersteunen geen animatie, dus een geanimeerde GIF die naar een van beide wordt geconverteerd, houdt maar één frame over.

Tips voor het werken met GIF

  • Wil je een stilstaand beeld, converteer dan GIF naar PNG. Het eerste frame van de GIF wordt als verliesvrije PNG met transparantie opgeslagen.
  • Om een geanimeerde GIF kleiner te maken in afmetingen gebruik je de tool afbeeldingsformaat wijzigen. Geanimeerde GIF's behouden bij het verkleinen elk frame en de weergavetijd ervan (tot 600 frames).
  • Om een animatie bij te snijden past de tool afbeelding bijsnijden dezelfde uitsnede toe op elk frame en behoudt hij de frametijden.
  • Om de bestandsgrootte te verkleinen houdt de afbeeldingscompressor geanimeerde GIF's als GIF met al hun frames, terwijl stilstaande GIF's standaard naar WebP worden omgezet om ze kleiner te maken.
  • Om een andere afbeelding in een GIF om te zetten kies je GIF als doel in de afbeeldingsconverter. De uitvoer is één frame met maximaal 256 kleuren, en halfdoorzichtige delen worden teruggebracht tot aan/uit-transparantie.
  • Dit alles draait in je browser, dus je bestanden verlaten je apparaat nooit.

Veelgestelde vragen

Is GIF lossy?

LZW-compressie is verliesvrij. Maar om een afbeelding met volle kleuren naar GIF om te zetten, moet je haar tot 256 kleuren terugbrengen, en in die kleurreductie zit het verlies.

Is er verschil tussen een GIF en een geanimeerde GIF?

Het formaat is hetzelfde. Een GIF met één frame staat stil, een GIF met meerdere frames is geanimeerd. Frametijden en herhaalinformatie staan in extensies in het bestand.

Waarom wordt GIF nog gebruikt?

Omdat het vrijwel overal zonder instellingen afspeelt: in browsers, mailprogramma's, chatapps en oude software. Efficiëntere alternatieven bieden die compatibiliteit nog niet in elke omgeving.

Heeft het zin om GIF naar MP4 om te zetten?

Als je het op je website toont, meestal wel. In het voorbeeld op web.dev nemen de videoversies ongeveer een zevende tot een tiende van de grootte van de GIF in. Een video die wordt afgespeeld met de attributen autoplay, loop, muted en playsinline gedraagt zich op de pagina precies als een GIF.

Hoeveel kleuren kan een GIF hebben?

Elke kleurentabel bevat maximaal 256 kleuren. Technisch gezien kan een GIF met meerdere frames in totaal meer kleuren tonen, omdat elk frame een eigen lokale tabel kan hebben, maar binnen één frame is de grens 256.

Bronnen

Gerelateerde converters

Alle artikelen