Windows bitmapa (.bmp)
Arhitektura StandardBitmap 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:
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 4DASCII REPREZENTACIJA: BM
Standardizacija: Arhitektura DIB formata Microsoft Windows, nezavisnog od uređaja
Tehničke specifikacije
| Arhitektura kontejnera | Zaglavlje BITMAPFILEHEADER, zatim BITMAPINFOHEADER (DIB) i niz rasterskih piksela |
| Kompresija | Nekomprimovane 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 boja | RGB zavisan od uređaja, sRGB (ugrađen u BITMAPV5HEADER) |
| Kanali i struktura | Jednobojni prikaz od 1 bita, paletni prikaz od 4 ili 8 bita, RGB od 16 ili 24 bita ili RGBA od 32 bita |
| Maksimalne dimenzije | 2.147.483.647 x 2.147.483.647 piksela (potpisani ceo broj od 32 bita) |
| Transparentnost | Podržana je 32-bitna BGRA alfa-maska u savremenim formatima BITMAPV3HEADER i V5HEADER |
| Strimovanje i progresivno učitavanje | Ne 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 atribut | BMP (Trenutno) | PNG | TIFF | JPG |
|---|---|---|---|---|
| Režim kompresije | Nekompresovano / Minimalni RLE | Nekomprimovano Deflate kompresovanje; ušteda prostora zavisi od sadržaja slike | Nekompresovano / LZW / Zip | DCT sa gubicima (~90% manji) |
| Brzina dekodiranja | Trenutno kopiranje iz memorije | Zahteva Deflate dekompresiju | Zahteva LZW/ZIP dekompresiju | Zahteva IDCT proračun |
| Redosled linija skeniranja | Od dna ka vrhu (obrnuto) | Od vrha ka dnu | Od vrha ka dnu / Trake | Od vrha ka dnu MCU blokovi |
| Pogodnost za veb | Vrlo loše (glomazne datoteke) | Odlično za grafiku | Loš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
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.
Povezani parovi konverzije za BMP
Konvertovanje nekompresovanih Windows Bitmap datoteka u PNG pruža kompresiju bez gubitaka koja smanjuje veličinu datoteka bez umanjenja kvaliteta slike.
Konvertovanje Portable Network Graphics datoteka u Windows Bitmap transformiše kompresovane rasterske podatke u nekompresovanu mrežu piksela za starije operativne sisteme i hardverske tokove obrade.
Postavite podržani BMP snimak ekrana na jednu stranicu PDF-a za tiket ili izveštaj. Ovaj postupak prihvata nekomprimovane 24-bitne ili 32-bitne piksele, ali ne i komprimovane varijante BMP formata.