Obrázek Windows Bitmap (.bmp)

Microsoft Standardní

Bitmap Image File (BMP) je základní rastrový grafický formát nezávislý na zařízení od společnosti Microsoft, který ukládá nekomprimované řádky pixelů nebo řádky komprimované pomocí RLE s přímou kompatibilitou s hardwarovou vyrovnávací pamětí (framebufferem).

Převést BMP na PNG

Bezplatný konvertor z BMP do PNG v prohlížeči. Převeďte soubory okamžitě ve svém zařízení.

Kontrola a metadata

Operační systémy a analyzátory souborů identifikují soubory BMP kontrolou počáteční binární sekvence bajtů:

Vyberte nebo přetáhněte soubory sem

Soukromě - soubory nikdy neopustí vaše zařízení

nebo vložte Ctrl+V
Záruka ochrany soukromí s nulovým přenosem po síti: 0 bajtů odesláno na externí servery. Veškeré zpracování probíhalo lokálně v sandboxu vašeho prohlížeče.

Podpis hlavičky na úrovni bajtů (Magic Bytes)

Operační systémy a analyzátory souborů identifikují soubory BMP kontrolou počáteční binární sekvence bajtů:

HEXADECIMÁLNÍ PODPIS (POSUN 0):

42 4D

ASCII REPREZENTACE: BM

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

Technické specifikace

Architektura kontejneruHlavička BITMAPFILEHEADER, za ní hlavička BITMAPINFOHEADER (DIB) a pole rastrových pixelů
KompreseNekomprimované surové řádky nebo volitelné kódování délek běhů BI_RLE8 / BI_RLE4
Pořadí bajtůLittle-endian (pořadí bajtů procesorů Intel x86)
Barevné prostoryRGB závislé na zařízení, sRGB (vložený v BITMAPV5HEADER)
Kanály a struktura1bitový monochromatický obraz, 4bitová či 8bitová paleta, 16bitové, 24bitové RGB nebo 32bitové RGBA
Max. rozměry2,147,483,647 x 2,147,483,647 pixelů (32bitové celé číslo se znaménkem)
PrůhlednostModerní formáty BITMAPV3HEADER a V5HEADER podporují 32bitovou masku alfa BGRA
Streamování a progresivní načítáníNestreamovatelný; řádky jsou uloženy vzhůru nohama (zdola nahoru), pokud je výška kladná

Technická srovnávací matice: BMP vs konkurence

Technický atributBMP (Aktuální)PNGTIFFJPG
Režim kompreseNekomprimováno / Minimální RLEBezztrátová komprese Deflate; úspora místa závisí na obsahu obrázkuNekomprimováno / LZW / ZipZtrátový DCT (cca o 90 % menší)
Rychlost dekódováníOkamžité kopírování pamětiVyžaduje dekompresi DeflateVyžaduje dekompresi LZW/ZIPVyžaduje výpočet IDCT
Uspořádání řádkůOdspodu nahoru (převrácené)Shora dolůShora dolů / Proužky (Strips)Bloky MCU shora dolů
Vhodnost pro webVelmi špatná (přemrštěný objem dat)Vynikající pro grafikuŠpatná (stolní publikační systémy)Vynikající pro fotografii

Běžné režimy poškození a příručka pro obnovení v hex

Obrázek se vykresluje úhlopříčně zkosený nebo nakloněný pod úhlem.

Hlavní příčina: Nesprávný výpočet zarovnání řádků (selhání při zarovnání každého řádku na 4bajtovou hranici).

Obnovení: Znovu zakódujte pomocí nástroje File2File.app Image Converter, abyste vynutili správný 32bitový krok řádku (stride).

Bezpečnostní analýza a vektory útoků na parser

Dekodéry BMP často trpí čtením za hranicemi vyrovnávací paměti při alokaci paměti na základě nedůvěryhodných rozměrů v hlavičce DIB.

Známé vektory útoků

  • Celočíselné přetečení ve výpočtu šířka * výška * bpp vedoucí k alokaci malé haldy a zápisu mimo vyrovnávací paměť.
  • Poškozené řídicí sekvence kódování délky běhu RLE8/RLE4 způsobující zápis do paměti za přidělenou vyrovnávací paměť.
  • Odepření služby (DoS) prostřednictvím vícesigabytové alokace paměti vyvolané upravenými rozměry v hlavičce.

Doporučené bezpečnostní postupy: Před alokací cílové paměti přísně ověřte meze šířky, výšky a bitové hloubky hlavičky DIB.

Historický vývoj a milníky

1998Windows 98 přichází s hlavičkou BITMAPV5HEADER, která přidává správu barevných profilů ICC a korekci gama.
1990Windows 3.0 standardizuje specifikaci DIB BITMAPINFOHEADER napříč operačním systémem.
1987Představeno v systému Windows 2.0 a OS/2 1.1 jako nativní rastrový formát pro zobrazení.

Klíčové výhody a přednosti

  • Žádná degradace kompresí: 100 % bitově přesné uložení pixelů bez kompresních artefaktů.
  • Windows má nativní kodek BMP, zatímco podpora v jiných operačních systémech a aplikacích se liší.
  • Triviální složitost dekódování jej činí ideálním pro vestavěné mikrokontroléry a výuku grafického programování.

Technická omezení a nevýhody

  • Obrovská velikost souborů kvůli absenci moderní entropické komprese, jako je DEFLATE nebo Huffmanovo kódování.
  • Neefektivní pro přenos po webu nebo distribuci v mobilních sítích.
  • Uspořádání řádků odspodu nahoru vyžaduje vertikální převrácení řádků v moderních grafických kanálech shora dolů.

Zajímavé technické drobnosti

  • Formát BMP ukládá obrazové řádky ve výchozím nastavení vzhůru nohama (odspodu nahoru) kvůli matematickému kartézskému souřadnicovému systému použitému v OS/2.
  • Pokud je hodnota výšky v hlavičce BMP nastavena na záporné číslo, obrázek se dekóduje správně orientovaný (shora dolů).
  • Každý řádek v souboru BMP musí být doplněn nulami tak, aby jeho délka byla násobkem 4 bajtů (zarovnání na 32bitovou hranici).

Často kladené technické otázky

Proč jsou soubory BMP tak velké?

Soubory BMP ukládají surové, nekomprimované hodnoty barev pro každý jeden pixel, zatímco formáty jako PNG tato data komprimují bez ztráty jakékoliv kvality.

Podporuje formát BMP průhlednost?

Ano. 32bitové soubory BMP (využívající BITMAPV3HEADER nebo novější) mohou obsahovat 8bitový alfa kanál, ačkoliv podpora se u staršího softwaru může lišit.

Jak mohu zmenšit velikost souboru BMP?

Převod souboru BMP do PNG může zmenšit jeho velikost při zachování hodnot pixelů; výsledek závisí na obsahu obrázku a kódování BMP.