Windows Bitmap (.bmp)

Microsoft Standard

Bitmap Image File (BMP) er Microsofts grundlæggende enhedsuafhængige rastergrafikformat, som lagrer ukomprimerede eller RLE-komprimerede scanningslinjer med direkte kompatibilitet med hardwarens framebuffer.

Konverter BMP til PNG

Gratis BMP til PNG-konverter i browseren. Konverter filer med det samme på din enhed.

Undersøgelse og metadata

Operativsystemer og filanalysatorer identificerer BMP-filer ved at inspicere den indledende binære bytesekvens:

Vælg eller træk filer hertil

Privat - filer forlader aldrig din enhed

eller indsæt Ctrl+V
Privatlivsgaranti uden netværksoverførsel: 0 byte overført til eksterne servere. Al behandling foregik lokalt i browserens sandkasse.

Byte-niveau Header-signatur (Magic Bytes)

Operativsystemer og filanalysatorer identificerer BMP-filer ved at inspicere den indledende binære bytesekvens:

HEX-SIGNATUR (OFFSET 0):

42 4D

ASCII-REPRÆSENTATION: BM

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

Tekniske specifikationer

ContainerarkitekturBITMAPFILEHEADER efterfulgt af BITMAPINFOHEADER (DIB) og rasterets pixelarray
KomprimeringUkomprimerede rå scanlinjer eller valgfri run-length-kodning med BI_RLE8 / BI_RLE4
Byte-rækkefølgeLittle-Endian (Intel x86-byterækkefølge)
FarverumEnhedsafhængig RGB, sRGB (indlejret i BITMAPV5HEADER)
Kanaler og struktur1-bit monokrom, 4-bit / 8-bit med palet, 16-bit, 24-bit RGB eller 32-bit RGBA
Maks. dimensioner2,147,483,647 x 2,147,483,647 pixels (signed 32-bit-heltal)
Gennemsigtighed32-bit BGRA-alfamaske understøttes i moderne BITMAPV3HEADER- og V5HEADER-formater
Streaming og progressivKan ikke streames; scanlinjer gemmes på hovedet (nedefra og op), medmindre højden er negativ

Teknisk sammenligningsmatrix: BMP sammenlignet med konkurrenterne

Teknisk attributBMP (Aktuel)PNGTIFFJPG
KomprimeringstilstandUkomprimeret / Minimal RLETabsfri Deflate-komprimering; besparelsen i filstørrelse varierer efter billedindholdUkomprimeret / LZW / ZipTabsgivende DCT (~90 % mindre)
AfkodningshastighedØjeblikkelig kopiering i hukommelsenKræver Deflate-dekomprimeringKræver LZW/ZIP-dekomprimeringKræver IDCT-beregning
ScanningslinjefølgeNedefra og op (omvendt)Oppefra og nedOppefra og ned / strimlerOppefra og ned MCU-blokke
WebegnethedMeget dårlig (unødigt store filer)Fremragende til grafikDårlig (desktop publishing)Fremragende til fotografi

Almindelige korruptionstilstande og hex-gendannelsesvejledning

Billedet gengives diagonalt forskudt eller skævt i en vinkel.

Grundlæggende årsag: Forkert beregning af rækkepadding (manglende udfyldning af hver scanningslinje til en grænse på 4 byte).

Gendannelse: Genkod ved hjælp af File2File.app Image Converter for at sikre korrekt 32-bit scanningslinjeafstand.

Sikkerhedsanalyse og parser-angrebsvektorer

BMP-afkodere lider ofte under bufferoverlæsninger (buffer over-reads), når der allokeres buffere baseret på ikketroværdige DIB-hoveddimensioner.

Kendte angrebsvektorer

  • Heltalsoverløb i beregningen bredde * højde * bpp, som fører til en for lille allokering på heapen og skrivning uden for bufferens grænser.
  • Korrupte RLE8/RLE4-løbelængde-undslippelsessekvenser (run-length escape sequences), der forårsager hukommelsesskrivninger ud over den allokerede buffer.
  • Tjenestenægtelse via hukommelsesallokering på flere gigabyte udløst af manipulerede headerdimensioner.

Defensive bedste praksisser: Kontrollér nøje grænserne for bredde, højde og bitdybde i DIB-headeren, før der allokeres hukommelse til destinationen.

Historisk oprindelse og milepæle

1998Windows 98 introducerer BITMAPV5HEADER, som tilføjer administration af ICC-farveprofiler og gammakorrektion.
1990Windows 3.0 standardiserer BITMAPINFOHEADER DIB-specifikationen på tværs af operativsystemet.
1987Introduceret med Windows 2.0 og OS/2 1.1 som det oprindelige visningsrasterformat.

Vigtige fordele og styrker

  • Nul komprimeringsforringelse: 100 % bideksaktellagring af pixels helt uden komprimeringsartefakter.
  • Windows har et indbygget BMP-codec, mens understøttelsen i andre operativsystemer og programmer varierer.
  • Minimal afkodningskompleksitet gør det ideelt til indlejrede mikrocontrollere og undervisning i grafisk programmering.

Tekniske begrænsninger og ulemper

  • Enorme filstørrelser på grund af manglende moderne entropikomprimering som DEFLATE eller Huffman-kodning.
  • Ineffektivt til webtransmission eller distribution over mobilnetværk.
  • Rækkefølgen af scanningslinjer fra bunden og op kræver lodret rækkeinvertering i moderne oppefra-og-ned-grafikpipelines.

Interessante tekniske fakta

  • BMP gemmer som standard billedets scanningslinjer på hovedet (nedefra og op) på grund af det matematiske kartesiske koordinatsystem, der bruges i OS/2.
  • Hvis højdeværdien i BMP-headeren indstilles til et negativt tal, afkodes billedet rigtig vej (oppefra og ned).
  • Hver scanningslinje i en BMP-fil skal have tilføjet nuller til et multiplum af 4 byte (32-bit grænsetilpasning).

Ofte stillede tekniske spørgsmål

Hvorfor er BMP-filer så store?

BMP-filer gemmer rå, ukomprimerede farveværdier for hver eneste pixel, hvorimod formater som PNG komprimerer disse data uden at miste nogen kvalitet.

Kan BMP understøtte transparens?

Ja. 32-bit BMP-filer (ved brug af BITMAPV3HEADER eller nyere) kan gemme en 8-bit alfakanal, men understøttelsen varierer mellem ældre programmer.

Hvordan kan jeg reducere størrelsen på en BMP-fil?

Konvertering af en BMP-fil til PNG kan reducere filstørrelsen og samtidig bevare pixelværdierne, men resultatet afhænger af billedindholdet og BMP-kodningen.