Bitmap Windows (.bmp)
Microsoft StandardBitmap Image File (BMP) este formatul raster de bază independent de dispozitiv al Microsoft, stocând linii de scanare necomprimate sau comprimate RLE cu compatibilitate 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.
Inspectează ș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 (Magic Bytes)
Sistemele de operare și analizatoarele de fișiere identifică fișierele BMP prin inspectarea secvenței binare inițiale:
SEMNĂTURĂ HEX (OFFSET 0):
42 4DREPREZENTARE ASCII: BM
Standardizare: Microsoft Windows Device-Independent Bitmap (DIB) Architecture
Specificații tehnice
| Arhitectură container | BITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array |
| Compresie | Uncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding |
| Endianitatea octeților | Little-Endian (Intel x86 byte order) |
| Spații de culoare | Device Dependent RGB, sRGB (BITMAPV5HEADER embedded) |
| Canale și structură | 1-bit monochrome, 4-bit / 8-bit paletted, 16-bit, 24-bit RGB, or 32-bit RGBA |
| Dimensiuni maxime | 2,147,483,647 x 2,147,483,647 pixels (signed 32-bit integer) |
| Transparență | 32-bit BGRA alpha mask supported in modern BITMAPV3HEADER and V5HEADER formats |
| Streaming și progresiv | Non-streamable; scanlines stored upside-down (bottom-up) unless height is negative |
Matrice de comparație tehnică: BMP vs Competitori
| Atribut tehnic | BMP (Curent) | PNG | TIFF | JPG |
|---|---|---|---|---|
| Mod de compresie | Necomprimat / RLE minimal | Deflate fără pierderi (~70% mai mic) | 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 umflate) | Excelent pentru grafică | Slabă (publicații desktop) | Excelent pentru fotografie |
Moduri comune de corupție și ghid de recuperare hexazecimală
Imaginea se randează tăiată în 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-codificați folosind convertorul de imagini File2File pentru a impune pasul corect de 32 de biți pentru linia 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 evadare cu lungime de rulare RLE8/RLE4 corupte care determină scrieri în memorie dincolo de bufferul alocat.
- Denegare a 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:
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.
- Suport universal nativ pentru sisteme de operare pe toate versiunile de Windows, Linux și macOS.
- 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 conductele 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 de coordonate carteziene matematic 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 cu File2File.app reduce de obicei dimensiunea fișierului cu 60% până la 85%, fără nicio pierdere a calității vizuale.
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ă datele raster comprimate într-o grilă de pixeli necomprimată pentru sisteme de operare și conducte hardware învechite.