Windows bitmapa (.bmp)

Arhitektura Standard

Bitmap datoteka slike (BMP) je Microsoftov osnovni rasterski grafički format nezavisan od uređaja, koji čuva nekompresovane ili RLE-kompresovane linije skeniranja i direktno je kompatibilan sa hardverskim baferom kadra.

Konvertujte BMP u PNG

Besplatan konvertor BMP u PNG u pregledaču. Konvertujte datoteke odmah na svom uređaju.

Pregled i metapodaci

Operativni sistemi i analizatori datoteka identifikuju BMP datoteke proverom početnog binarnog niza bajtova:

Izaberite ili prevucite datoteke ovde

Privatno - datoteke nikada ne napuštaju vaš uređaj

ili nalepite Ctrl+V
Garancija privatnosti: bez prenosa podataka preko mreže 0 bajtova poslato spoljnim serverima. Sva obrada je izvršena lokalno u bezbednom okruženju vašeg pregledača.

Potpis zaglavlja na nivou bajtova (magični bajtovi)

Operativni sistemi i analizatori datoteka identifikuju BMP datoteke proverom početnog binarnog niza bajtova:

HEKSADECIMALNI POTPIS (OFFSET 0):

42 4D

ASCII REPREZENTACIJA: BM

Standardizacija: Arhitektura DIB formata Microsoft Windows, nezavisnog od uređaja

Tehničke specifikacije

Arhitektura kontejneraZaglavlje BITMAPFILEHEADER, zatim BITMAPINFOHEADER (DIB) i niz rasterskih piksela
KompresijaNekomprimovane sirove linije skeniranja ili opciono kodiranje dužina nizova BI_RLE8 / BI_RLE4
Bajtni redosled (Endianness)Redosled bajtova Intel x86 procesora, od najmanje značajnog ka najznačajnijem (little-endian)
Prostori bojaRGB zavisan od uređaja, sRGB (ugrađen u BITMAPV5HEADER)
Kanali i strukturaJednobojni prikaz od 1 bita, paletni prikaz od 4 ili 8 bita, RGB od 16 ili 24 bita ili RGBA od 32 bita
Maksimalne dimenzije2.147.483.647 x 2.147.483.647 piksela (potpisani ceo broj od 32 bita)
TransparentnostPodržana je 32-bitna BGRA alfa-maska u savremenim formatima BITMAPV3HEADER i V5HEADER
Strimovanje i progresivno učitavanjeNe podržava strimovanje; linije skeniranja čuvaju se naopako (odozdo nagore), osim kada je visina negativna

Tehnička matrica poređenja: BMP u odnosu na konkurente

Tehnički atributBMP (Trenutno)PNGTIFFJPG
Režim kompresijeNekompresovano / Minimalni RLENekomprimovano Deflate kompresovanje; ušteda prostora zavisi od sadržaja slikeNekompresovano / LZW / ZipDCT sa gubicima (~90% manji)
Brzina dekodiranjaTrenutno kopiranje iz memorijeZahteva Deflate dekompresijuZahteva LZW/ZIP dekompresijuZahteva IDCT proračun
Redosled linija skeniranjaOd dna ka vrhu (obrnuto)Od vrha ka dnuOd vrha ka dnu / TrakeOd vrha ka dnu MCU blokovi
Pogodnost za vebVrlo loše (glomazne datoteke)Odlično za grafikuLoše (desktop izdavaštvo)Odlično za fotografiju

Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak

Slika se iscrtava iskrivljeno, sa dijagonalnim nagibom.

Osnovni uzrok: Netačan proračun popunjavanja redova (neuspeh popunjavanja svake linije skeniranja do granice od 4 bajta).

Oporavak: Ponovo kodirajte koristeći File2File.app Image Converter da biste primenili ispravan 32-bitni korak linije skeniranja.

Bezbednosna analiza i vektori napada parsera

BMP dekoderi često čitaju izvan granica bafera kada ga alociraju na osnovu nepouzdanih dimenzija DIB zaglavlja.

Poznati vektori napada

  • Prelivanje celobrojne vrednosti u proračunu širina * visina * bpp, koje dovodi do male alokacije memorije na hipu i upisa izvan granica bafera.
  • Oštećene RLE8/RLE4 sekvence bekstva dužine niza koje uzrokuju upise u memoriju izvan alociranog bafera.
  • Uskraćivanje usluge (DoS) usled alokacije više gigabajta memorije izazvane posebno oblikovanim dimenzijama zaglavlja.

Najbolje prakse za zaštitu: Strogo validirajte granice širine, visine i dubine bitova DIB zaglavlja pre alokacije odredišne memorije.

Istorijat i prekretnice

1998Windows 98 predstavlja BITMAPV5HEADER, dodajući upravljanje ICC profilima boja i korekciju gama vrednosti.
1990Windows 3.0 standardizuje BITMAPINFOHEADER DIB specifikaciju širom operativnog sistema.
1987Predstavljen uz Windows 2.0 i OS/2 1.1 kao izvorni format prikaza rastera.

Ključne prednosti

  • Nulta degradacija kompresije: 100% potpuno tačno po bitovima skladištenje piksela bez ikakvih artefakata kompresije.
  • Windows ima ugrađeni BMP kodek, dok podrška u drugim operativnim sistemima i aplikacijama varira.
  • Trivijalna složenost dekodiranja čini ga idealnim za ugrađene mikrokontrolere i edukaciju iz programiranja grafike.

Tehnička ograničenja i nedostaci

  • Ogromne veličine datoteka zbog nedostatka moderne entropijske kompresije poput DEFLATE ili Hafmanovog kodiranja.
  • Neefikasno za prenos preko veba ili distribuciju putem mobilne mreže.
  • Redosled linija skeniranja odozdo nagore zahteva vertikalnu inverziju redova u modernim grafičkim procesnim tokovima koji rade odozgo nadole.

Zanimljivosti

  • BMP podrazumevano čuva linije skeniranja slike naopako (od dna ka vrhu) zbog matematičkog kartezijanskog koordinatnog sistema koji se koristi u OS/2.
  • Ako je vrednost visine u BMP zaglavlju postavljena na negativan broj, slika se dekodira ispravno (od vrha ka dnu).
  • Svaka linija skeniranja u BMP datoteci mora biti popunjena nulama do višekratnika od 4 bajta (poravnanje na granicu od 32 bita).

Često postavljana tehnička pitanja

Zašto su BMP datoteke toliko velike?

BMP datoteke skladište sirove, nekompresovane vrednosti boja za svaki pojedinačni piksel, dok formati poput PNG-a kompresuju te podatke bez gubitka kvaliteta.

Može li BMP da podržava providnost?

Da. 32-bitne BMP datoteke (koje koriste BITMAPV3HEADER ili novije zaglavlje) mogu da skladište 8-bitni alfa kanal, mada se podrška razlikuje u starijim softverima.

Kako mogu da smanjim veličinu BMP datoteke?

Konverzija BMP datoteke u PNG može da smanji njenu veličinu uz očuvanje vrednosti piksela, ali rezultat zavisi od sadržaja slike i kodiranja BMP-a.