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ą:
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 4DASCII ATVAIZDAVIMAS: BM
Standartizacija: Microsoft Windows Device-Independent Bitmap (DIB) Architecture
Techninės specifikacijos
| Konteinerio architektūra | BITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array |
| Glaudinimas | Uncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding |
| Baitų seka (Endianness) | Little-Endian (Intel x86 byte order) |
| Spalvų erdvės | Device Dependent RGB, sRGB (BITMAPV5HEADER embedded) |
| Kanalai ir struktūra | 1-bit monochrome, 4-bit / 8-bit paletted, 16-bit, 24-bit RGB, or 32-bit RGBA |
| Maksimalūs matmenys | 2,147,483,647 x 2,147,483,647 pixels (signed 32-bit integer) |
| Skaidrumas | 32-bit BGRA alpha mask supported in modern BITMAPV3HEADER and V5HEADER formats |
| Srautas ir progresyvusis įkėlimas | Non-streamable; scanlines stored upside-down (bottom-up) unless height is negative |
Techninė palyginimo matrica: BMP vs konkurentai
| Techninis atributas | BMP (Dabartinis) | PNG | TIFF | JPG |
|---|---|---|---|---|
| Suspaudimo režimas | Nesuspaustas / Minimalus RLE | Be nuostolių „Deflate" (~70 % mažesnis) | Nesuspaustas / LZW / Zip | Su nuostoliais DCT (~90 % mažesnis) |
| Dekodavimo greitis | Momentinis atminties kopijavimas | Reikalauja „Deflate" dekompresijos | Reikalauja LZW/ZIP dekompresijos | Reikalauja IDCT skaičiavimo |
| Skenavimo eilučių tvarka | Nuo apačios iki viršaus (apversta) | Nuo viršaus iki apačios | Nuo viršaus iki apačios / Juostelės | Nuo viršaus iki apačios MCU blokai |
| Tinkamumas internetui | Labai prastas (išpūstos apimtys) | Puikiai tinka grafikai | Prastas (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
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.
Susijusios BMP konvertavimo poros
Nesuspautų „Windows Bitmap" failų konvertavimas į PNG užtikrina glaudinimą be nuostolių, kuris sumažina failų dydį nesumažindamas vaizdo kokybės.
Nešiojamojo tinklo grafikos (PNG) konvertavimas į „Windows Bitmap" transformuoja suspaustus rastrinius duomenis į nesuspautą pikselių tinklelį senesnėms operacinėms sistemoms ir aparatinės įrangos grandinėms.