Windows Bitmap (.bmp)

Microsoft Standaard

Bitmap Image File (BMP) is Microsofts fundamentele apparaatonafhankelijke rastergrafische formaat, dat niet-gecomprimeerde of RLE-gecomprimeerde scanlijnen opslaat met directe compatibiliteit met de hardware-framebuffer.

BMP naar PNG converteren

Gratis BMP-naar-PNG-converter in uw browser. Converteer bestanden direct op uw apparaat.

Inspecteren en metadata

Besturingssystemen en bestandsanalysators herkennen BMP-bestanden aan de hand van de eerste binaire bytesequentie:

Selecteer of sleep bestanden hierheen

Privé - bestanden verlaten uw apparaat niet

of plak Ctrl+V
Privacygarantie zonder netwerktransmissie: 0 bytes geüpload naar externe servers. Alle verwerking vond lokaal plaats in uw browser-sandbox.

Bestandshandtekening op byteniveau (magic bytes)

Besturingssystemen en bestandsanalysators herkennen BMP-bestanden aan de hand van de eerste binaire bytesequentie:

HEX-HANDTEKENING (OFFSET 0):

42 4D

ASCII-WEERGAVE: BM

Standaardisatie: Microsoft Windows Device-Independent Bitmap (DIB) Architecture

Technische specificaties

ContainerarchitectuurBITMAPFILEHEADER gevolgd door BITMAPINFOHEADER (DIB) en rasterpixelarray
CompressieNiet-gecomprimeerde ruwe scanlijnen, of optionele BI_RLE8 / BI_RLE4 run-length-codering
Bytevolgorde (endianness)Little-Endian (Intel x86 bytevolgorde)
KleurruimtenApparaatafhankelijke RGB, sRGB (ingebedde BITMAPV5HEADER)
Kanalen en structuur1-bits monochroom, 4-bits / 8-bits met palet, 16-bits, 24-bits RGB of 32-bits RGBA
Maximale afmetingen2.147.483.647 x 2.147.483.647 pixels (signed 32-bit integer)
Transparantie32-bits BGRA-alfamasker, ondersteund in moderne BITMAPV3HEADER- en V5HEADER-formaten
Streaming en progressiefNiet streambaar; scanlijnen worden ondersteboven opgeslagen (bottom-up) tenzij de hoogte negatief is

Technische vergelijkingsmatrix: BMP versus concurrenten

Technisch kenmerkBMP (Huidig)PNGTIFFJPG
CompressiemodusNiet-gecomprimeerd / minimale RLEVerliesvrije Deflate-compressie; besparing op bestandsgrootte varieert met de inhoud van de afbeeldingNiet-gecomprimeerd / LZW / ZipDCT met verlies (~90% kleiner)
DecodeersnelheidOnmiddellijke geheugenkopieVereist Deflate-decompressieVereist LZW- of ZIP-decomprimerenVereist IDCT-berekening
Scanline-volgordeVan onder naar boven (omgekeerd)Van boven naar benedenVan boven naar beneden / strokenMCU-blokken van boven naar beneden
Geschiktheid voor webZeer slecht (grote payloads)Uitstekend voor grafische afbeeldingenSlecht (desktop publishing)Uitstekend voor fotografie

Veelvoorkomende beschadigingen en gids voor hex-herstel

Afbeelding wordt diagonaal afgeknot of onder een hoek vervormd weergegeven.

Oorzaak: Onjuiste berekening van de rijopvulling (elke scanline is niet opgevuld tot een grens van 4 bytes).

Herstel: Converteer opnieuw met de Image Converter van File2File.app om de juiste 32-bits scanline-stride af te dwingen.

Beveiligingsanalyse en aanvalsvectoren voor parsers

BMP-decoders hebben vaak last van buffer over-reads bij het toewijzen van buffers op basis van niet-vertrouwde DIB-headerdimensies.

Bekende aanvalsvectoren

  • Integer overflow in de berekening van breedte * hoogte * bpp, wat leidt tot een kleine heaptoewijzing en out-of-bounds schrijven.
  • Beschadigde RLE8- of RLE4-lengte-coderingsequenties die geheugenschrijven buiten de toegewezen buffer veroorzaken.
  • Denial of service door geheugentoewijzing van meerdere gigabytes geactiveerd door aangepaste headerdimensies.

Aanbevolen beveiligingspraktijken: Valideer de grenzen van de DIB-headerbreedte, -hoogte en -bitdiepte strikt voordat het doelgeheugen wordt toegewezen.

Historische oorsprong en mijlpalen

1998Windows 98 introduceert BITMAPV5HEADER, wat ICC-kleurprofielbeheer en gammacorrectie toevoegt.
1990Windows 3.0 standaardiseert de BITMAPINFOHEADER DIB-specificatie over het hele besturingssysteem.
1987Geïntroduceerd met Windows 2.0 en OS/2 1.1 als het native rasterformaat voor weergave.

Belangrijkste voordelen

  • Geen kwaliteitsverlies door compressie: 100% bit-exacte pixelopslag zonder compressie-artefacten.
  • BMP heeft een native Windows-codec, terwijl de ondersteuning in andere besturingssystemen en applicaties varieert.
  • De eenvoudige decodering maakt het ideaal voor ingebedde microcontrollers en educatie in grafische programmering.

Technische beperkingen

  • Enorme bestandsgroottes door het ontbreken van moderne entropiecompressie zoals DEFLATE of Huffman-codering.
  • Inefficiënt voor webbrowser-transmissie of distributie via mobiele netwerken.
  • Bottom-up scanlijnvolgorde vereist verticale rij-inversie in moderne top-down grafische pijplijnen.

Interessante technische weetjes

  • BMP slaat afbeeldingsscanlijnen standaard ondersteboven op (van beneden naar boven) vanwege het wiskundige Cartesiaanse coördinatensysteem dat in OS/2 werd gebruikt.
  • Als de hoogtewaarde in de BMP-header is ingesteld op een negatief getal, wordt de afbeelding rechtop gedecodeerd (van boven naar beneden).
  • Elke scanlijn in een BMP-bestand moet worden aangevuld met nullen tot een veelvoud van 4 bytes (32-bits grens-uitlijning).

Veelgestelde technische vragen

Waarom zijn BMP-bestanden zo groot?

BMP-bestanden slaan onbewerkte, niet-gecomprimeerde kleurwaarden op voor elke afzonderlijke pixel, terwijl formaten zoals PNG die gegevens comprimeren zonder kwaliteitsverlies.

Ondersteunt BMP transparantie?

Ja. 32-bits BMP-bestanden (met BITMAPV3HEADER of nieuwer) kunnen een 8-bits alfakanaal opslaan, hoewel de ondersteuning verschilt per oudere software.

Hoe kan ik de grootte van een BMP-bestand verkleinen?

Het converteren van een BMP-bestand naar PNG kan de bestandsgrootte verkleinen met behoud van pixelwaarden, maar het resultaat hangt af van de inhoud van de afbeelding en de BMP-codering.