GIF naar BMP omzetten

Hier zet je GIF naar BMP om, gratis en zonder account: sleep het bestand hierboven erin en binnen een paar seconden staat het resultaat klaar om te downloaden. De omzetting gebeurt binnen je eigen browser, dus het bestand wordt nooit geüpload. Het werkt hetzelfde op Windows, macOS en Linux als op iPhone en Android, en het blijft werken als je de verbinding verbreekt.

  • Waar het draait In je browser. Het bestand wordt nooit geüpload.
  • Met verlies De kleuren blijven exact behouden. BMP kan geen transparantie dragen, dus uitgeknipte delen worden gevuld met de achtergrondkleur.
  • Maximale grootte Tot 100 MB per bestand, gratis en zonder account.
  • Goed om te weten Alleen het eerste beeld wordt omgezet: een bewegende GIF wordt een stilstaande afbeelding.

Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.

Wat de omzetting van GIF naar BMP werkelijk doet

GIF 36 KBBMP 450 KB 12.4× groter

Een fotografisch tafereel — zachte overgangen, vage randen, korrel. Dit is het geval waarvoor BMP is bedacht, of waartegen, en de cijfers laten zien welke van de twee. Beide afbeeldingen worden door code getekend en gecodeerd door dezelfde omzetter die op deze pagina draait, dus de groottes zijn de uitvoer van de site zelf.

GIF 8 KBBMP 450 KB 59.9× groter

Een doorzichtige achtergrond en een verloop dwars door de vorm. BMP houdt beide, of één van beide, of vult de doorzichtigheid met een effen kleur — en juist dat verschil overvalt mensen. Beide afbeeldingen worden door code getekend en gecodeerd door dezelfde omzetter die op deze pagina draait, dus de groottes zijn de uitvoer van de site zelf.

GIF 6 KBBMP 450 KB 72.9× groter

Vlakke kleur en harde randen, zoals in een interface, een diagram of een logo. Gedraagt zich heel anders dan de foto hierboven, en dat is waarom het antwoord «het hangt ervan af wat er in het bestand zit» is. Beide afbeeldingen worden door code getekend en gecodeerd door dezelfde omzetter die op deze pagina draait, dus de groottes zijn de uitvoer van de site zelf.

Een GIF besteedt één byte per pixel, de bitmap besteedt er drie

Deze twee formaten zijn bijna even oud — 1987 en 1990 — en lossen hetzelfde probleem tegengesteld op. Een GIF slaat een index op in een palet van hoogstens 256 kleuren, één byte per pixel voor LZW-compressie het verder verkleint. De bitmap die hier geschreven wordt, slaat voor elke pixel een volledige blauw-, groen- en roodwaarde op, ongecomprimeerd.

De groei is dus geen enkele factor maar twee die vermenigvuldigd worden: drie bytes waar de GIF er één gebruikte, en geen van de LZW-besparing die de GIF klein maakte. Een GIF van 40 KB wordt routinematig een bitmap tien keer zo groot, en bij vlakke tekeningen met lange reeksen identieke kleur — precies waar GIF het best in comprimeert — is de verhouding nog slechter.

De bitmapgrootte berekenen voordat je op omzetten drukt

De rekensom is kort en er valt niets te schatten. Vermenigvuldig de breedte met drie voor de bytes in één rij, rond dat af naar boven tot een veelvoud van vier, vermenigvuldig met de hoogte en tel er 54 bytes header bij op. Een GIF van 480 bij 270 geeft 1440 bytes per rij, geen afronding nodig, 388.800 bytes aan pixels en 388.854 in totaal.

Niets aan de bron verandert dat getal. Dezelfde bitmap van 480 bij 270 komt uit een zwaar geditherde foto en uit een egaal rood vlak, omdat het formaat elke pixel letterlijk opslaat in beide gevallen. Die voorspelbaarheid is precies waarom hardware om bitmaps vraagt.

Rijen lopen van onder naar boven, en elke rij is opgevuld

Twee conventies in deze bitmap lijken fouten en zijn dat niet. De rijen staan van onder naar boven opgeslagen, en de kanalen binnen elke pixel zijn geordend als blauw, groen, rood in plaats van andersom. Beide staan in de oorspronkelijke specificatie.

De derde is de opvulling: elke rij wordt opgevuld tot een veelvoud van vier bytes, dus een afbeelding van 101 pixels breed schrijft 303 bytes aan pixels gevolgd door één byte niets, 304 bytes per rij. Code die aanneemt dat elke rij precies breedte maal drie bytes is, produceert een beeld dat diagonaal afschuift.

De animatie stopt bij het eerste frame van de GIF

BMP kent één afbeelding. Het heeft geen begrip van een reeks, een vertraging of een lus, dus een geanimeerde GIF wordt hier het frame waarmee hij opent, en de rest vervalt.

Voor de bestemmingen die om bitmaps vragen is dat zelden een probleem, want een apparaat dat een BMP wil, wil per definitie een statisch beeld. Controleer wel of het eerste frame het gewenste is: veel GIF’s openen op een leeg beeld of een titelkaart voordat de inhoud begint.

Waarom 256 kleuren de bitmap niet kleiner maken

Het lijkt logisch dat een afbeelding met maar 256 verschillende kleuren een klein bestand oplevert, en voor een formaat met palet zou dat kloppen. De bitmapspecificatie staat dat zelfs toe — een 8-bit BMP met kleurentabel, wat vrijwel perfect op een GIF zou aansluiten.

Deze omzetter schrijft dat niet. Elke bitmap die hij produceert is 24-bit, dus een GIF met zes kleuren kost evenveel bytes als een foto van dezelfde afmetingen. Vraagt jouw apparaat specifiek om een 8-bit bitmap met palet, dan voldoet dit bestand niet.

De transparante kleur moet een echte kleur worden

Een GIF kan één palet-item als transparant aanwijzen. De bitmap hier heeft helemaal geen alfakanaal — 24 bit, drie kanalen, niets over — dus die pixels moeten voor het coderen een waarde krijgen.

De achtergrondkleuroptie bepaalt die waarde en staat standaard op wit. Bewust kiezen is belangrijk bij hardware: een icoon voor een scherm met een zwarte interface hoort op zwart geplat te worden, niet op wit om het later om te draaien.

De GIF verkleinen voordat de bitmap geschreven wordt

Er is geen kwaliteitsschuif bij deze omzetting en die kan er ook niet zijn: ongecomprimeerd is ongecomprimeerd, er valt niets te verhandelen. De enige hendel is de maximale breedte, die het beeld verkleint voordat de pixels geschreven worden en dus de bestandsgrootte kwadratisch verandert.

De breedte halveren deelt de bitmap door vier. Dat is meestal de juiste zet als het doel toch een klein scherm is — een paneel van 128 pixels breed wint niets bij een bron van 640 pixels.

Metadata, waarvan een GIF bijna niets draagt

Elke raster-omzetting hier verwijdert metadata onderweg, onvoorwaardelijk, en bij dit paar heeft die regel weinig te doen. Een GIF heeft geen EXIF-blok, geen cameramodel, geen gps-coördinaten; hoogstens een commentaar- of applicatie-extensie van wat het bestand maakte.

Het bitmapformaat heeft er sowieso geen plek voor. De header beschrijft afmetingen, bitdiepte en verder weinig, dus wat eruit komt zijn pixels en geometrie.

De bitmap wordt op je eigen machine samengesteld

De GIF wordt gedecodeerd door de eigen afbeeldingsondersteuning van de browser, en de bitmapheader en pixelrijen worden in JavaScript in hetzelfde tabblad geschreven. Er is geen server in het pad, geen upload en geen account, en het bestand is weg zodra het tabblad sluit.

Dat telt hier extra, want wat mensen naar BMP omzetten is vaak intern: een bedieningspaneelgrafiek, een productlabel, een opstartscherm van een instrument. Niets daarvan hoeft langs andermans infrastructuur.

Zo zet je GIF naar BMP om

  1. Sleep je GIF-bestand op deze pagina, of klik om er een te kiezen.
  2. Kies BMP als doel. De omzetting gebeurt in je browser en het bestand wordt niet geüpload.
  3. Download het klare BMP-bestand.

GIF of BMP: wat er verandert

GIF vergeleken met BMP
GIFBMP
Volledige naamGraphics Interchange FormatWindows-bitmap
Bestandsextensie.gif.bmp, .dib
Mediatypeimage/gifimage/bmp
CompressieZonder verlies — er gaat niets wegGeen compressie
Voor het eerst gepubliceerd19871987
Uitgegeven doorCompuServeMicrosoft
SpecificatieGIF89a
LicentieOpen standaardGepubliceerd, niet gestandaardiseerd
Stand van zakenOud, wordt overal nog gelezenOud, wordt overal nog gelezen
Bitdiepte88
Kleur die het kan beschrijvengeïndexeerd paletRGB, geïndexeerd palet
Grootste afbeelding65.535 px per zijde
Opent in een browserElke browserElke browser
In plaats daarvan overwogenWebP, MP4PNG, TIFF

Wat verloren gaat

BMP heeft geen alfakanaal. Een transparant GIF-bestand komt eruit met die vlakken opgevuld — wit, tenzij je iets anders instelt — en geen enkele instelling in BMP haalt de transparantie terug.

BMP bevat één stilstaand beeld. Van een geanimeerd GIF-bestand blijft het eerste frame over en de rest vervalt: de omzetting haalt er een beeld uit, ze neemt de beweging niet mee.

Het resultaat openen

GIMP leest zowel GIF als BMP, dus je kunt het resultaat naast het origineel leggen zonder een tweede programma.

Bestandsgrootte en kwaliteit

BMP bewaart de monsters rauw, dus het bestand groeit flink zonder er iets bij te winnen. Die richting is alleen zinnig als een programma aan de andere kant GIF niet aanneemt — en dat is meestal ook de reden.

Waarvoor elk formaat bedoeld is

De twee mikken op ander werk: GIF op het web, BMP op gegevens tussen programma’s verplaatsen. Dat is het afwegen waard, want de reden dat het ene bestaat is meestal de reden dat het andere onhandig is.

GIF is het formaat van CompuServe, verschenen in 1987. Er wordt met 8 bits per kanaal vastgelegd.

BMP komt van Microsoft en stamt uit 1987. Microsoft Paint, GIMP en IrfanView lezen het formaat.

Van GIF naar BMP: veelgestelde vragen

Wordt mijn GIF-bestand ergens heen geüpload?

Nee. Deze omzetting gebeurt volledig in je browser, dus het bestand verlaat je apparaat niet. Je kunt het zelf nagaan: open het netwerktabblad van de ontwikkelaarshulpmiddelen en zet iets om. Je ziet de pagina zelf en de verzoeken voor statistiek en advertenties waarmee deze dienst betaald wordt, en geen enkel verzoek dat je bestand meeneemt. De motor achter juist dit paar is jSquash, WebAssembly-versies van de referentiecodecs voor beeld; je browser haalt die één keer op en bewaart hem.

Is GIF naar BMP omzetten gratis?

Ja. Geen account, geen watermerk en geen dagtegoed dat opraakt: het draait op je eigen machine, dus je mag zo vaak terugkomen als je wilt. De browser verwerkt bestanden tot 100 MB, 100 tegelijk. jSquash wordt naar je eigen machine gehaald en draait daar, en daarom staat er geen teller op.

Gaat er kwaliteit verloren bij het omzetten van GIF naar BMP?

BMP comprimeert, dus er gaan gegevens verloren. Met de standaardinstelling valt dat niet op; wil je zeker zijn, zet de kwaliteit dan hoger. Alleen het eerste beeld wordt omgezet: een bewegende GIF wordt een stilstaande afbeelding.

Blijft de transparante achtergrond behouden van GIF naar BMP?

BMP heeft geen alfakanaal. Een transparant GIF-bestand komt eruit met die vlakken opgevuld — wit, tenzij je iets anders instelt — en geen enkele instelling in BMP haalt de transparantie terug.

Blijft een geanimeerd GIF-bestand als BMP bewegen?

BMP bevat één stilstaand beeld. Van een geanimeerd GIF-bestand blijft het eerste frame over en de rest vervalt: de omzetting haalt er een beeld uit, ze neemt de beweging niet mee.

Waarom is het BMP-bestand zoveel groter dan het GIF-bestand?

BMP bewaart de monsters rauw, dus het bestand groeit flink zonder er iets bij te winnen. Die richting is alleen zinnig als een programma aan de andere kant GIF niet aanneemt — en dat is meestal ook de reden.

Meer over deze formaten

Waar deze cijfers vandaan komen

Wat deze pagina over GIF en BMP beweert, is na te gaan, en dit zijn de documenten die de zaak beslechten.