Bitmap Windows (.bmp)
Microsoft StandardBitmap Image File (BMP) este formatul raster fundamental al Microsoft, independent de dispozitiv, care stochează linii de scanare necomprimate sau comprimate RLE și este compatibil direct cu memoria tampon hardware.
Convertește din BMP în PNG
Convertor gratuit din BMP în PNG direct în browser. Convertește fișiere instantaneu pe dispozitivul tău.
Inspectare și metadate
Sistemele de operare și analizatoarele de fișiere identifică fișierele BMP prin inspectarea secvenței binare inițiale:
Semnătura antetului la nivel de octet (octeți magici)
Sistemele de operare și analizatoarele de fișiere identifică fișierele BMP prin inspectarea secvenței binare inițiale:
SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):
42 4DREPREZENTARE ASCII: BM
Standardizare: Microsoft Windows Device-Independent Bitmap (DIB) Architecture
Specificații tehnice
| Arhitectură container | Antet BITMAPFILEHEADER urmat de BITMAPINFOHEADER (DIB) și matricea de pixeli |
| Compresie | Linii de scanare brute necomprimate sau, opțional, codare BI_RLE8 / BI_RLE4 cu lungime variabilă |
| Ordinea octeților | Little-Endian (ordinea octeților Intel x86) |
| Spații de culoare | RGB dependent de dispozitiv, sRGB (BITMAPV5HEADER embedded) |
| Canale și structură | Monocrom pe 1 bit, paletă pe 4 sau 8 biți, RGB pe 16 sau 24 de biți ori RGBA pe 32 de biți |
| Dimensiuni maxime | 2.147.483.647 x 2.147.483.647 de pixeli (întreg cu semn pe 32 de biți) |
| Transparență | Masca alfa BGRA pe 32 de biți este acceptată de formatele BITMAPV3HEADER și V5HEADER moderne |
| Streaming și progresiv | Nu poate fi transmis în flux; liniile sunt stocate de jos în sus dacă înălțimea nu este negativă |
Matrice de comparație tehnică: BMP vs. concurenți
| Atribut tehnic | BMP (Curent) | PNG | TIFF | JPG |
|---|---|---|---|---|
| Mod de compresie | Necomprimat / RLE minimal | Compresie Deflate fără pierderi; economia de spațiu depinde de conținutul imaginii | Necomprimat / LZW / Zip | DCT cu pierderi (~90% mai mic) |
| Viteză de decodare | Copiere instantanee în memorie | Necesită decompresie Deflate | Necesită decompresie LZW/ZIP | Necesită calcul IDCT |
| Ordonarea liniilor de scanare | De jos în sus (inversat) | De sus în jos | De sus în jos / Benzi | Blocuri MCU de sus în jos |
| Adecvare pentru web | Foarte slabă (fișiere voluminoase) | Excelent pentru grafică | Slabă (publicații desktop) | Excelent pentru fotografie |
Moduri comune de corupție și ghid de recuperare hexazecimală
Imaginea este redată deformată pe diagonală sau înclinată la un unghi.
Cauză principală: Calcul incorect al umplerii rândurilor (eșecul de a completa fiecare linie de scanare la o limită de 4 octeți).
Recuperare: Re-encodează imaginea cu File2File.app Image Converter pentru a impune un pas corect de 32 de biți între liniile de scanare.
Analiză de securitate și vectori de atac asupra parserului
Decodificatoarele BMP suferă adesea de citiri excesive ale memoriei tampon (buffer over-reads) atunci când alocă buffere pe baza dimensiunilor din antetul DIB care provin din surse nesigure.
Vectori de atac cunoscuți
- Depășire de întreg (integer overflow) în calculul lățime * înălțime * bpp, ducând la o alocare mică în memorie (heap) și la scriere în afara limitelor.
- Secvențe de escape pentru codificarea lungimii de rulare RLE8/RLE4 corupte care determină scrieri în memorie dincolo de bufferul alocat.
- Refuz al serviciului prin alocare de memorie de mai mulți gigaocteți declanșată de dimensiuni create intenționat în antet.
Cele mai bune practici de securitate: Validează strict limitele lățimii, înălțimii și adâncimii de culoare din antetul DIB înainte de a aloca memoria destinației.
Origini istorice și repere
Avantaje cheie și beneficii
- Fără degradare prin compresie: stocare a pixelilor exactă la nivel de bit, cu zero artefacte de compresie.
- Windows are un codec BMP nativ, iar suportul în alte sisteme de operare și aplicații variază.
- Complexitatea trivială de decodare îl face ideal pentru microcontrolere încorporate și educația în programarea grafică.
Limitări tehnice și dezavantaje
- Dimensiuni uriașe ale fișierelor din cauza lipsei compresiei moderne de entropie, cum ar fi DEFLATE sau codificarea Huffman.
- Ineficient pentru transmisia pe web sau distribuția prin rețele mobile.
- Ordonarea liniilor de scanare de jos în sus necesită inversarea verticală a rândurilor în fluxurile grafice moderne de sus în jos.
Curiozități tehnice interesante
- BMP stochează liniile de scanare ale imaginii invers (de jos în sus) în mod implicit, din cauza sistemului matematic de coordonate carteziene utilizat în OS/2.
- Dacă valoarea înălțimii din antetul BMP este setată la un număr negativ, imaginea este decodată în poziția corectă (de sus în jos).
- Fiecare linie de scanare dintr-un fișier BMP trebuie completată cu zerouri până la un multiplu de 4 octeți (aliniere la o limită de 32 de biți).
Întrebări tehnice frecvente
De ce sunt fișierele BMP atât de mari?
Fișierele BMP stochează valori de culoare brute, necomprimate, pentru fiecare pixel în parte, în timp ce formate precum PNG comprimă acele date fără a pierde nicio calitate.
Poate formatul BMP să accepte transparența?
Da. Fișierele BMP pe 32 de biți (folosind BITMAPV3HEADER sau mai nou) pot stoca un canal alfa de 8 biți, deși suportul poate varia în cazul software-ului mai vechi.
Cum pot reduce dimensiunea unui fișier BMP?
Conversia unui fișier BMP în PNG poate reduce dimensiunea fișierului păstrând valorile pixelilor, dar rezultatul depinde de conținutul imaginii și de codarea BMP.
Perechi de conversie BMP conexe
Conversia fișierelor Windows Bitmap necomprimate în PNG oferă o compresie fără pierderi care reduce dimensiunea fișierelor fără a reduce calitatea imaginii.
Conversia Portable Network Graphics în Windows Bitmap transformă date raster comprimate într-o grilă de pixeli necomprimată, pentru sisteme de operare și fluxuri hardware mai vechi.
Plasează o captură de ecran BMP acceptată pe o singură pagină PDF, pentru un tichet sau un raport. Această conversie acceptă pixeli necomprimați pe 24 de biți sau 32 de biți, nu variante BMP comprimate.