Bitmap Windows (.bmp)

Microsoft Standard

Bitmap 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:

Selectează sau plasează fișierele aici

Conversie 100% privată în browser - fișierele nu părăsesc niciodată dispozitivul tău

sau lipește Ctrl+V
Garanție de confidențialitate cu zero transmisie în rețea: 0 octeți încărcați pe servere externe. Toată procesarea a avut loc local în sandbox-ul browserului tău.

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 4D

REPREZENTARE ASCII: BM

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

Specificații tehnice

Arhitectură containerBITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array
CompresieUncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding
Endianitatea octețilorLittle-Endian (Intel x86 byte order)
Spații de culoareDevice 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 maxime2,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 progresivNon-streamable; scanlines stored upside-down (bottom-up) unless height is negative

Matrice de comparație tehnică: BMP vs Competitori

Atribut tehnicBMP (Curent)PNGTIFFJPG
Mod de compresieNecomprimat / RLE minimalDeflate fără pierderi (~70% mai mic)Necomprimat / LZW / ZipDCT cu pierderi (~90% mai mic)
Viteză de decodareCopiere instantanee în memorieNecesită decompresie DeflateNecesită decompresie LZW/ZIPNecesită calcul IDCT
Ordonarea liniilor de scanareDe jos în sus (inversat)De sus în josDe sus în jos / BenziBlocuri MCU de sus în jos
Adecvare pentru webFoarte 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

1998Windows 98 introduce BITMAPV5HEADER, adăugând gestionarea profilului de culoare ICC și corecția gamma.
1990Windows 3.0 standardizază specificația BITMAPINFOHEADER DIB în cadrul sistemului de operare.
1987Este introdus odată cu Windows 2.0 și OS/2 1.1 ca formatul nativ pentru afișarea raster.

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.