Windows Bitmap (.bmp)

Microsoft Standardno

Datoteka bitmapne slike (BMP) temeljni je Microsoftov neovisni format raster grafike koji pohranjuje nekomprimirane ili RLE komprimirane linije skeniranja s izravnom kompatibilnošću s hardverskim međuspremnikom okvira.

Pretvori BMP u PNG

Besplatni BMP u PNG pretvarač u pregledniku. Trenutno pretvorite datoteke na svom uređaju.

Pregledaj i metapodaci

Operativni sustavi i alati za analizu datoteka identificiraju BMP datoteke provjerom početnog niza binarnih bajtova:

Odaberite ili ispustite datoteke ovdje

100% privatna pretvorba u pregledniku - datoteke nikada ne napuštaju vaš uređaj

ili zalijepi Ctrl+V
Jamstvo privatnosti nulte mrežne transmisije: 0 bajtova učitano na vanjske poslužitelje. Sva obrada odvijala se lokalno u sandčiću vašeg preglednika.

Potpis zaglavlja na razini bajtova (Magic Bytes)

Operativni sustavi i alati za analizu datoteka identificiraju BMP datoteke provjerom početnog niza binarnih bajtova:

HEX POTPIS (POMAK 0):

42 4D

ASCII PRIKAZ: BM

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

Tehničke specifikacije

Arhitektura spremnikaBITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array
KompresijaUncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding
字节序Little-Endian (Intel x86 byte order)
Prostori bojaDevice Dependent RGB, sRGB (BITMAPV5HEADER embedded)
Kanali i struktura1-bit monochrome, 4-bit / 8-bit paletted, 16-bit, 24-bit RGB, or 32-bit RGBA
Maksimalne dimenzije2,147,483,647 x 2,147,483,647 pixels (signed 32-bit integer)
Prozirnost32-bit BGRA alpha mask supported in modern BITMAPV3HEADER and V5HEADER formats
Streaming i progresivnoNon-streamable; scanlines stored upside-down (bottom-up) unless height is negative

Tehnička matrica usporedbe: BMP vs Konkurencija

Tehnički atributBMP (Trenutno)PNGTIFFJPG
Način kompresijeNekomprimirano / Minimalni RLEDeflate bez gubitaka (~70% manji)Nekomprimirano / LZW / ZipGubitni DCT (~90% manji)
Brzina dekodiranjaTrenutno kopiranje memorijeZahtijeva Deflate dekompresijuZahtijeva LZW/ZIP dekompresijuZahtijeva izračun IDCT-a
Redoslijed linija skeniranjaOd dna prema vrhu (obrnuto)Od vrha prema dnuOd vrha prema dnu / TrakeMCU blokovi od vrha prema dnu
Prikladnost za WebVrlo loše (napuhani korisni tereti)Odlično za grafikuLoše (stolno izdavaštvo)Odlično za fotografiju

Uobičajeni načini oštećenja i vodič za heksadecimalni oporavak

Slika se iscrtava ukošeno dijagonalno ili zakrivljeno pod kutom.

Temeljni uzrok: Netočan izračun dopune redaka (neuspio pokušaj popunjavanja svake linije skeniranja do granice od 4 bajta).

Oporavak: Ponovno kodirajte koristeći File2File Image Converter kako biste osigurali ispravan korak 32-bitne linije skeniranja.

Sigurnosna analiza i vektori napada na parser

BMP dekoderi često pate od prekomjernog čitanja međuspremnika prilikom dodjeljivanja međuspremnika na temelju nedefiniranih dimenzija DIB zaglavlja.

Poznati vektori napada

  • Cjelobrojno prelijevanje u izračunu širina * visina * bpp što dovodi do male alokacije gomile (heap) i pisanja izvan granica.
  • Oštećene RLE8/RLE4 sekvence izlaza duljine vođenja uzrokuju pisanje u memoriju izvan dodijeljenog međuspremnika.
  • Ukraćivanje usluge (DoS) putem alokacije memorije od nekoliko gigabajta pokrenute izrađenim dimenzijama zaglavlja.

Najbolje obrambene prakse:

Povijesni izvori i prekretnice

1998Windows 98 uvodi BITMAPV5HEADER, dodajući upravljanje ICC profilima boja i korekciju gama.
1990Windows 3.0 standardizira BITMAPINFOHEADER DIB specifikaciju kroz cijeli operativni sustav.
1987Predstavljeno s Windows 2.0 i OS/2 1.1 kao izvorni format prikaza rastera.

Ključne prednosti

  • Nulta degradacija kompresije: 100% bitno precizna pohrana piksela bez ikakvih artefakata kompresije.
  • Univerzalna izvorna podrška operativnog sustava na svim verzijama sustava Windows, Linux i macOS.
  • Trivialna složenost dekodiranja čini ga idealnim za ugrađene mikrokontrolere i edukaciju o računalnoj grafici.

Tehnička ograničenja i nedostaci

  • Ogromne veličine datoteka zbog nedostatka moderne entropijske kompresije poput DEFLATE-a ili Huffmanovog kodiranja.
  • Neučinkovito za prijenos putem Weba ili distribuciju putem mobilne mreže.
  • Redoslijed linija skeniranja odozdo prema gore zahtijeva okomitu inverziju redaka u modernim cjevovodima grafike koji idu odozgo prema dolje.

Zanimljive tehničke činjenice

  • BMP pohranjuje linije skeniranja slike naopako (od dna prema vrhu) prema zadanim postavkama zbog matematičkog Kartezijevog koordinatnog sustava korištenog u OS/2.
  • Ako je vrijednost visine u BMP zaglavlju postavljena na negativan broj, slika se dekodira ispravnom stranom prema gore (od vrha prema dnu).
  • Svaka linija skeniranja u BMP datoteci mora biti popunjena nulama do višekratnika od 4 bajta (poravnanje na 32-bitnu granicu).

Često postavljana tehnička pitanja

Zašto su BMP datoteke toliko velike?

BMP datoteke pohranjuju sirove, nekomprimirane vrijednosti boja za svaki pojedinačni piksel, dok formati poput PNG-a komprimiraju te podatke bez gubitka kvalitete.

Može li BMP podržavati prozirnost?

Da. 32-bitne BMP datoteke (koje koriste BITMAPV3HEADER ili noviji) mogu pohraniti 8-bitni alfa kanal, iako se podrška razlikuje u starijem softveru.

Kako mogu smanjiti veličinu BMP datoteke?

Pretvaranje BMP datoteke u PNG pomoću File2File.app obično smanjuje veličinu datoteke za 60% do 85% uz nula gubitaka u vizualnoj kvaliteti.