JXL naar BMP omzetten

Hier zet je JXL 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 Het doelformaat kan geen doorzichtigheid aan, dus de doorzichtige delen worden met de achtergrondkleur gevuld.

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

Wat de omzetting van JXL naar BMP werkelijk doet

JXL 7 KBBMP 450 KB 63.7× 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.

JXL 5 KBBMP 450 KB 91.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.

JXL 13 KBBMP 450 KB 34.8× 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.

Wie nog een BMP nodig heeft, en waarom een JXL niet volstaat

Microsoft publiceerde BMP in 1987 en het is voor het grootste deel van de tijd sindsdien verouderd geweest, maar de vraag ernaar verdwijnt niet. Firmware-buildscripts, ledpanelen en kleine displays, laboratorium- en machinevisiesoftware, oudere Windows-toepassingen, emulator- en modtoolchains voor games — heel veel code is geschreven om een bitmapheader te lezen en direct in pixels te indexeren, en niets daarvan leert ooit een nieuw formaat.

JPEG XL is het tegenovergestelde daarvan. Het werd in 2022 als ISO/IEC 18181-1 gestandaardiseerd, zit in vrijwel geen consumentensoftware, en decoderen vereist een moderne codec die de machine aan het andere eind van je werkstroom vrijwel zeker niet heeft. Omzetten is hier geen voorkeur; het is de enige manier waarop de pixels aankomen in een vorm die de ontvanger kan aanspreken.

Het getal dat deze pagina bepaalt: drie bytes per pixel

De BMP die hier geschreven wordt, kent geen compressie van welke aard dan ook. Het bestand is een bestandsheader van 14 bytes, een informatieheader van 40 bytes, en dan de pixels — drie bytes elk, blauw eerst. Een afbeelding van 4000 bij 3000 pixels komt uit op precies 36.000.054 bytes, ongeveer 34 MiB, en dat is exact even groot of de foto nu een gedetailleerd bos toont of een effen wit vlak.

Tegenover een JPEG XL van misschien drie megabyte is dat een factor elf, en tegenover de 46 MiB die dezelfde afbeelding als oncomprimeerde TIFF zou innemen is het de enige winst die BMP biedt, omdat BMP het alfakanaal laat vallen dat TIFF wél behoudt. Niets op deze pagina maakt het bestand kleiner behalve het aantal pixels verlagen. Comprimeer het achteraf als het verstuurd moet worden — een ZIP vindt behoorlijk wat redundantie in een onbewerkte bitmap, en op vlakke afbeeldingen haalt dat het meeste verschil terug.

Rijen van onder naar boven en BGR: wat er echt in de BMP zit

BMP dateert van vóór elke conventie die een modern formaat volgt. De rijen zijn opgeslagen van onder naar boven, de kanalen lopen blauw, groen, rood in plaats van rood, groen, blauw, en de header registreert de resolutie als 2835 pixels per meter, wat 72 dpi is. Alle drie staan in de specificatie en zijn niet het gevolg van een kortere weg hier.

De geschreven variant is 24 bits per pixel met een BITMAPINFOHEADER, de oudste en breedst geaccepteerde combinatie — geen kleurtabel, geen bitfield-maskers, geen compressietag om te interpreteren. Als de software die je voedt ooit tegen de Windows-API is geschreven, is dit precies de vorm die hij verwacht, en de vreemde conventies zijn precies waarom het werkt.

Transparantie in de JXL wordt permanent ingevuld

JPEG XL draagt een volledig alfakanaal en de 24-bit BMP heeft er nergens plaats voor. Voordat het bestand wordt geschreven, wordt de afbeelding gecomponeerd op een achtergrondkleur die je op deze pagina kiest, en zodra dat gebeurt is de oorspronkelijke randinformatie weg.

Kies de kleur waartegen de afbeelding daadwerkelijk vertoond zal worden in plaats van een standaard. Wit is juist voor een document of printvoorbeeld; zwart is juist voor een displaypaneel of een overlay op een donker oppervlak; magenta is juist als de ontvangende software een specifieke kleur als transparantiesleutel behandelt, wat een verrassend deel van de oudere game- en displaytooling doet. Dit fout krijgen laat zich zien als een gekleurde rand rond elke zachte overgang, en de enige oplossing is opnieuw omzetten vanaf de JPEG XL.

Rijen opgevuld tot vier bytes, waar oneven breedtes naartoe gaan

Elke rij in een BMP wordt opgevuld tot een veelvoud van vier bytes. Bij 24 bits per pixel heeft een breedte deelbaar door vier geen opvulling nodig, terwijl een breedte van 1001 pixels rijen van 3003 bytes oplevert met telkens één opvulbyte. De converter schrijft die bytes; ze horen bij het formaat, het is geen restruimte.

Dit is het detail dat handgeschreven lezers breekt. Software die ervan uitgaat dat de stride gelijk is aan breedte maal drie, leest een correcte BMP als een geleidelijk scheefgetrokken afbeelding — het klassieke diagonale uitsmeren. Als je uitvoer er scheefgetrokken uitziet, is de opvulling waar je moet kijken, en een breedte deelbaar door vier kiezen omzeilt het volledig.

Niets wat de JXL over zichzelf wist, bereikt de BMP

JPEG XL kan EXIF, XMP en een ICC-profiel dragen. BMP heeft nergens een standaardplek voor een van drieën, en deze omzetting decodeert naar onbewerkte pixels en schrijft die weg, dus het cameramodel, de opnamedatum, de GPS-coördinaten en het kleurprofiel stoppen hier allemaal. Dat is onvoorwaardelijk: er is geen schakelaar op de pagina die er iets van bewaart, omdat de encoder het nooit te zien krijgt.

Dat is in dezelfde stap een privacywinst en een kleurenrisico. Er zit geen profiel in de uitvoer, dus wat de BMP ook leest, zal de getallen als gewone sRGB interpreteren — prima voor een displaypaneel of instrument, en fout voor een foto met breed kleurbereik waar je om gaf. Bewaar waar de kleur ertoe doet de JPEG XL als referentie.

Geen kwaliteitsinstelling, omdat er niets te verhandelen valt

Elk lossy doel op deze site biedt een kwaliteitsgetal. Deze niet, en het ontbreken ervan is eerlijk en geen omissie: BMP registreert de pixelwaarden zoals ze zijn aangeleverd, dus er is geen bitsnelheid om in te stellen en geen detail om uit te geven. Twee omzettingen van dezelfde JPEG XL leveren bit-voor-bit identieke bestanden op.

Wat overblijft is het aantal pixels, en de instelling voor maximale breedte is dus de enige die effect heeft op het resultaat. Halveer de breedte en het bestand wordt een kwart, van 34 MiB naar ongeveer 8,6 MiB in het bovenstaande voorbeeld. Als de bestemming een displaypaneel van 320 bij 240 is, verklein dan naar 320 pixels en het hele gesprek over grootte vervalt.

PNG in plaats daarvan, tenzij de lezer echt niets anders neemt

PNG doet alles wat BMP doet en meer: verliesvrij, een alfakanaal dat overleeft, en een bestand dat doorgaans een fractie van de grootte is. Het is leesbaar door alles sinds 1996 en er is geen beeldkwaliteitsargument voor BMP erboven. Als de ontvangende software een PNG accepteert, is dat de omzetting om te draaien in plaats van deze.

BMP wint in precies één situatie, en het is een reële: de ontvangende code wil een header lezen en de rest van het bestand daarna behandelen als een adresseerbare reeks pixels, zonder decoder ertussen. Firmware, embedded displays en instrumentsoftware zitten vol met dat patroon. Als dat de beperking is, is de grootte geen nadeel maar de specificatie.

De geïndexeerde en 32-bit BMP-varianten die dit niet schrijft

BMP is een familie in plaats van één indeling. Het definieert ook 1-, 4- en 8-bit paletgebonden afbeeldingen met een kleurtabel, 16-bit gepakte vormen, en een 32-bit variant die via bitfield-maskers een alfakanaal kan dragen. Deze converter schrijft één lid van die familie — 24-bit, oncomprimeerd, geen kleurtabel — omdat dat degene is die niets weigert.

Als wat je voedt om een specifieke variant vraagt, zeg een 8-bit geïndexeerde bitmap voor een klein display of een 32-bit BMP met transparantie, voldoet deze omzetting daar niet aan en geen instelling hier verandert dat. Dat zijn taken voor gereedschap dat je het pixelformaat expliciet laat noemen, zoals ImageMagick.

Lokaal omzetten, en de limiet die geldt

Het decoderen, plat maken en de bitmap schrijven gebeuren allemaal in je browser, dus er wordt niets geüpload en er is geen wachtrij. Bestanden tot 100 MB worden geaccepteerd op de gratis laag, en die grens geldt voor de JPEG XL die erin gaat, niet voor de bitmap die eruit komt — een bronbestand van 100 megapixels zou een BMP van 300 MB opleveren, wat een kwestie is van het geheugen van je machine, niet van een limiet hier.

Sleep een map om een set in één keer om te zetten; elk bestand behoudt zijn naam met de extensie verwisseld en de batch komt terug als ZIP, wat voor oncomprimeerde bitmaps een aanzienlijk kleinere download is dan de bestanden zelf. Bewaar de JPEG XL-originelen: de BMP houdt de pixels vast, maar niet de transparantie, de metadata of de bitdiepte die erin zaten.

Zo zet je JXL naar BMP om

  1. Sleep je JXL-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.

JXL of BMP: wat er verandert

JXL vergeleken met BMP
JXLBMP
Volledige naamJPEG XLWindows-bitmap
Bestandsextensie.jxl.bmp, .dib
Mediatypeimage/jxlimage/bmp
CompressieHet een of het ander, afhankelijk van de instellingGeen compressie
Voor het eerst gepubliceerd20211987
Uitgegeven doorJoint Photographic Experts GroupMicrosoft
SpecificatieISO/IEC 18181
LicentieOpen standaardGepubliceerd, niet gestandaardiseerd
Stand van zakenNicheOud, wordt overal nog gelezen
Bitdiepte328
Kleur die het kan beschrijvenRGB, grijswaarden, breed gamutRGB, geïndexeerd palet
Opent in een browserSommige browsersElke browser
In plaats daarvan overwogenAVIF, WebP, PNGPNG, TIFF

Wat verloren gaat

BMP heeft geen alfakanaal. Een transparant JXL-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 JXL-bestand blijft het eerste frame over en de rest vervalt: de omzetting haalt er een beeld uit, ze neemt de beweging niet mee.

JXL bewaart tot 32 bits per kanaal en BMP houdt er 8 over. Die extra precisie is wat stevige correcties zonder banden doorstaat: zet dus liever om ná het bewerken dan ervoor.

Het resultaat openen

BMP opent in elke actuele browser. JXL komt nog minder ver. Gaat het bestand naar een webpagina of een formulier, dan is dat meestal de hele reden voor de omzetting.

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

Waarvoor elk formaat bedoeld is

De twee mikken op ander werk: JXL op archivering en fotografie, 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.

JXL is het formaat van Joint Photographic Experts Group, verschenen in 2021. Er wordt met 32 bits per kanaal vastgelegd.

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

BMP verscheen in 1987 en JXL in 2021. Het oudste is doorgaans het veiligste bestand om te overhandigen; het nieuwste doet hetzelfde werk met minder bytes.

Van JXL naar BMP: veelgestelde vragen

Wordt mijn JXL-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 JXL 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 JXL 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. Het doelformaat kan geen doorzichtigheid aan, dus de doorzichtige delen worden met de achtergrondkleur gevuld.

Blijft de transparante achtergrond behouden van JXL naar BMP?

BMP heeft geen alfakanaal. Een transparant JXL-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 JXL-bestand als BMP bewegen?

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

Verlaagt JXL naar BMP de kleurdiepte?

JXL bewaart tot 32 bits per kanaal en BMP houdt er 8 over. Die extra precisie is wat stevige correcties zonder banden doorstaat: zet dus liever om ná het bewerken dan ervoor.

Meer over deze formaten