Windows rastrinis paveikslėlis (.bmp)

Microsoft Standartinis

„Bitmap Image File" (BMP) yra pagrindinis „Microsoft" įrenginio nepriklausomas rastrinis grafinis formatas, saugantis nesuspaustas arba RLE suspaustas skenavimo eilutes su tiesioginiu aparatinės įrangos kadrų buferio suderinamumu.

Konvertuoti BMP į PNG

Nemokamas BMP į PNG konverteris naršyklėje. Konvertuokite failus akimirksniu savo įrenginyje.

Tikrinti ir metaduomenys

Operacinės sistemos ir failų analizatoriai atpažįsta BMP failus tikrindami pradinę dvejetainę baitų seką:

Pasirinkite arba nuvilkite failus čia

100% privatus konvertavimas naršyklėje - failai niekada nepalieka jūsų įrenginio

arba įklijuokite Ctrl+V
Nulinio tinklo perdavimo privatumo garantija: 0 baitų įkelta į išorinius serverius. Visas apdorojimas vyko vietoje, jūsų naršyklės smėlio dėžėje (sandbox).

Baitų lygio antraštės parašas (magiškieji baitai)

Operacinės sistemos ir failų analizatoriai atpažįsta BMP failus tikrindami pradinę dvejetainę baitų seką:

ŠEŠIOLIKTAINIS PARAŠAS (POSLINKIS 0):

42 4D

ASCII ATVAIZDAVIMAS: BM

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

Techninės specifikacijos

Konteinerio architektūraBITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array
GlaudinimasUncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding
Baitų seka (Endianness)Little-Endian (Intel x86 byte order)
Spalvų erdvėsDevice Dependent RGB, sRGB (BITMAPV5HEADER embedded)
Kanalai ir struktūra1-bit monochrome, 4-bit / 8-bit paletted, 16-bit, 24-bit RGB, or 32-bit RGBA
Maksimalūs matmenys2,147,483,647 x 2,147,483,647 pixels (signed 32-bit integer)
Skaidrumas32-bit BGRA alpha mask supported in modern BITMAPV3HEADER and V5HEADER formats
Srautas ir progresyvusis įkėlimasNon-streamable; scanlines stored upside-down (bottom-up) unless height is negative

Techninė palyginimo matrica: BMP vs konkurentai

Techninis atributasBMP (Dabartinis)PNGTIFFJPG
Suspaudimo režimasNesuspaustas / Minimalus RLEBe nuostolių „Deflate" (~70 % mažesnis)Nesuspaustas / LZW / ZipSu nuostoliais DCT (~90 % mažesnis)
Dekodavimo greitisMomentinis atminties kopijavimasReikalauja „Deflate" dekompresijosReikalauja LZW/ZIP dekompresijosReikalauja IDCT skaičiavimo
Skenavimo eilučių tvarkaNuo apačios iki viršaus (apversta)Nuo viršaus iki apačiosNuo viršaus iki apačios / JuostelėsNuo viršaus iki apačios MCU blokai
Tinkamumas internetuiLabai prastas (išpūstos apimtys)Puikiai tinka grafikaiPrastas (stalinei leidybai)Puikiai tinka fotografijai

Dažni sugadinimo režimai ir šešioliktainio atkūrimo vadovas

Vaizdas rodomas pasviręs įstrižai arba pakrypęs kampu.

Pirminė priežastis: Neteisingas eilučių papildymo apskaičiavimas (nepavyko papildyti kiekvienos skenavimo eilutės iki 4 baitų ribos).

Atkūrimas: Iš naujo užkoduokite naudodami „File2File Image Converter", kad užtikrintumėte teisingą 32 bitų skenavimo eilutės žingsnį.

Saugumo analizė ir analizatoriaus atakos vektoriai

BMP dekoderiai dažnai kenčia nuo buferio nuskaitymo per ribas, kai buferiai paskirstomi remiantis nepatikimais DIB antraštės matmenimis.

Žinomi atakos vektoriai

  • Sveikųjų skaičių perpildymas plotis * aukštis * bpp skaičiavime, sukeliantis nedidelį krūvos paskirstymą ir įrašymą už ribų.
  • Sugadintos RLE8 / RLE4 ilgio bėgimo pabėgimo sekos, sukeliančios atminties įrašymą už paskirto buferio ribų.
  • Paslaugų trikdžiai per kelių gigabaitų atminties paskirstymą, sukeltą specialiai sukurto antraštės matmenų.

Geriausia apsaugos praktika:

Istorinė kilmė ir svarbiausi etapai

1998„Windows 98" pristato „BITMAPV5HEADER", pridedant ICC spalvų profilio valdymą ir gama korekciją.
1990„Windows 3.0" standartizuoja „BITMAPINFOHEADER" DIB specifikaciją visoje operacinėje sistemoje.
1987Pristatytas kartu su „Windows 2.0" ir „OS/2 1.1" kaip gimtasis ekrano rastrinis formatas.

Pagrindiniai privalumai

  • Nėra suspaudimo degradacijos: 100 % tikslus baitų pikselių saugojimas be jokių suspaudimo artefaktų.
  • Universalus gimtosios operacinės sistemos palaikymas visose „Windows", „Linux" ir „macOS" versijose.
  • Dėl elementaraus dekodavimo sudėtingumo jis idealiai tinka įdėtiesiems mikrovaldikliams ir grafinio programavimo mokymui.

Techniniai apribojimai ir trūkumai

  • Milžiniški failų dydžiai dėl šiuolaikinio entropinio suspaudimo, pvz., „DEFLATE" arba „Huffman" kodavimo, trūkumo.
  • Neefektyvus perdavimui internetu arba platinimui mobiliuosiuose tinkluose.
  • Iš apačios į viršų vykdomas skenavimo eilučių išdėstymas reikalauja vertikalaus eilučių apvertimo šiuolaikinėse grafikos konvejerėse iš viršaus į apačią.

Įdomūs techniniai faktai

  • Pagal numatytuosius nustatymus BMP saugo vaizdo skenavimo eilutes aukštyn kojomis (nuo apačios iki viršaus) dėl matematinės Stačiakampio koordinačių sistemos, naudojamos OS/2.
  • Jei BMP antraštėje esanti aukščio reikšmė nustatyta kaip neigiamas skaičius, vaizdas dekoduojamas teisinga puse į viršų (nuo viršaus iki apačios).
  • Kiekviena BMP failo skenavimo eilutė turi būti papildyta nuliais iki 4 baitų kartotinio (32 bitų ribos sulygiavimas).

Dažniausiai užduodami techniniai klausimai

Kodėl BMP failai yra tokie dideli?

BMP failai saugo neapdorotas, nesuspaustas spalvų vertes kiekvienam atskiram pikseliui, o tokie formatai kaip PNG suspaudžia šiuos duomenis neprarasdami jokios kokybės.

Ar BMP palaiko skaidrumą?

Taip. 32 bitų BMP failai (naudojantys „BITMAPV3HEADER“ ar naujesnę versiją) gali saugoti 8 bitų alfa kanalą, nors palaikymas senesnėje programinėje įrangoje gali skirtis.

Kaip galiu sumažinti BMP failo dydį?

BMP failo konvertavimas į PNG naudojant „File2File.app“ paprastai sumažina failo dydį nuo 60% iki 85%, visiškai neprarandant vizualinės kokybės.