Windows Bitmap (.bmp)
Microsoft StandardBitmap 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:
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 4DASCII-REPRÆSENTATION: BM
Standardisering: Microsoft Windows Device-Independent Bitmap (DIB) Architecture
Tekniske specifikationer
| Containerarkitektur | BITMAPFILEHEADER efterfulgt af BITMAPINFOHEADER (DIB) og rasterets pixelarray |
| Komprimering | Ukomprimerede rå scanlinjer eller valgfri run-length-kodning med BI_RLE8 / BI_RLE4 |
| Byte-rækkefølge | Little-Endian (Intel x86-byterækkefølge) |
| Farverum | Enhedsafhængig RGB, sRGB (indlejret i BITMAPV5HEADER) |
| Kanaler og struktur | 1-bit monokrom, 4-bit / 8-bit med palet, 16-bit, 24-bit RGB eller 32-bit RGBA |
| Maks. dimensioner | 2,147,483,647 x 2,147,483,647 pixels (signed 32-bit-heltal) |
| Gennemsigtighed | 32-bit BGRA-alfamaske understøttes i moderne BITMAPV3HEADER- og V5HEADER-formater |
| Streaming og progressiv | Kan ikke streames; scanlinjer gemmes på hovedet (nedefra og op), medmindre højden er negativ |
Teknisk sammenligningsmatrix: BMP sammenlignet med konkurrenterne
| Teknisk attribut | BMP (Aktuel) | PNG | TIFF | JPG |
|---|---|---|---|---|
| Komprimeringstilstand | Ukomprimeret / Minimal RLE | Tabsfri Deflate-komprimering; besparelsen i filstørrelse varierer efter billedindhold | Ukomprimeret / LZW / Zip | Tabsgivende DCT (~90 % mindre) |
| Afkodningshastighed | Øjeblikkelig kopiering i hukommelsen | Kræver Deflate-dekomprimering | Kræver LZW/ZIP-dekomprimering | Kræver IDCT-beregning |
| Scanningslinjefølge | Nedefra og op (omvendt) | Oppefra og ned | Oppefra og ned / strimler | Oppefra og ned MCU-blokke |
| Webegnethed | Meget dårlig (unødigt store filer) | Fremragende til grafik | Då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
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.
Relaterede konverteringspar for BMP
Konvertering af ukomprimerede Windows Bitmap-filer til PNG giver tabsfri komprimering, der reducerer filstørrelsen uden at forringe billedkvaliteten.
Konvertering af Portable Network Graphics til Windows Bitmap transformerer komprimerede rasterdata til et ukomprimeret pixelgitter til ældre operativsystemer og hardwaredataveje.
Placer et understøttet BMP-skærmbillede på én PDF-side til en fejlmelding eller rapport. Denne rute accepterer ukomprimerede 24-bit- eller 32-bit-pixels, ikke komprimerede BMP-varianter.