aspose.info
LT

BMP – vaizdo failo formatas

Atnaujinta

Kas yra BMP failas?

Failai, kurių plėtinys yra .BMP, yra taškinio vaizdo failai, naudojami taškinių skaitmeninių vaizdų saugojimui. Šie vaizdai nepriklauso nuo grafikos adapterio ir taip pat vadinami nepriklausomu bitmap (DIB) failo formatu. Ši nepriklausomybė skirta atidaryti failą keliose platformose, pvz., Microsoft Windows ir Mac. BMP failo formatas gali saugoti duomenis kaip dvimačius skaitmeninius vaizdus tiek nespalvotu, tiek spalvotu formatu su įvairiu spalvų gyliu.

BMP failo formato specifikacijos

Įrenginio nepriklausomi taškiniai paveikslėliai veikia kaip pagalbinė priemonė keistis taškais tarp įrenginių ir programų. Dėl nuolatinio šio failo formato evoliucijos antraštėse esanti informacija gali skirtis priklausomai nuo Bitmap versijos. Vieną bitmap failą sudaro fiksuotos ir kintamo dydžio struktūros tam tikra seka.

Bitmap failo struktūros yra išdėstytos tokia tvarka:

StruktūraNeprivalomaDydisPaskirtis
Failo antraštėNe14Saugoti bendrą informaciją apie bitmap vaizdo failą
DIB antraštėNeFiksuoto dydžioSaugoti išsamią informaciją apie bitmap vaizdą ir apibrėžti pikselių formatą
Papildomų bitų kaukėsTaip12 arba 16 baitųNorėdami apibrėžti pikselių formatą
Spalvų paletėPusiau pasirenkamaKintamo dydžioNorėdami apibrėžti spalvas, naudojamas bitmap vaizdo duomenims
Atotrūkis1TaipKintamo dydžioStruktūros derinimas
Pixel ArrayNoVariable-sizePixel formatą apibrėžia DIB antraštė arba papildomų bitų kaukės.
Atotrūkis2TaipKintamo dydžioStruktūros derinimas
ICC Spalvos profilisTaipKintamas dydisNorėdami apibrėžti spalvų profilį spalvų valdymui

Kai bitmap vaizdas įkeliamas į atmintį, jis tampa DIB struktūra, kurią Windows naudoja per GDI API. Failo antraštė nėra šios duomenų struktūros dalis. Spalvą taip pat gali sudaryti 16 bitų įrašai, kurie sudaro šiuo metu nurodytos paletės indeksus, o ne aiškius RGB spalvų apibrėžimus. Pažvelkime į kai kuriuos iš jų išsamiai, ypač antraštes.

Bitmap failo antraštė

Bitmap failo antraštė yra panaši į kitas failo antraštes, naudojamas failui identifikuoti. Kadangi yra įvairių BMP failo formato variantų, pirmieji 2 BMP failo formato baitai yra simbolis B, o tada simbolis M ASCII koduotėje. Visos sveikųjų skaičių reikšmės saugomos mažo galo formatu.

Poslinkis šešiakampisPoslinkis decDydisPaskirtis
0002 bytesThe header field used to identify the BMP and DIB file is 0x42 0x4D in hexadecimal, same as BM in ASCII. It can following possible values.* BM – Windows 3.1x, 95, NT, … etc. * BA – OS/2 struktūrinio taškinio plano masyvas * CI – OS/2 struktūros spalvos piktograma * CP – OS/2 const spalvų žymeklis * IC – OS/2 struktūros piktograma * PT – OS/2 rodyklė
0224 baitaiBMP failo dydis baitais
0662 baitaiRezervuota; tikroji vertė priklauso nuo vaizdą kuriančios programos
0882 baitaiRezervuota; tikroji vertė priklauso nuo vaizdą kuriančios programos
0A104 baitaiBaito poslinkis, ty pradinis adresas, kuriame galima rasti bitmap vaizdo duomenis (pikselių masyvą).

DIB antraštė (bitmap informacijos antraštė)

Išsami informacija apie vaizdą pateikiama šioje antraštėje. Remiantis šia informacija, bus nustatyta programa, kuri bus naudojama vaizdui rodyti ekrane. Visose tokiose antraštėse yra DWORD (32 bitų) laukas, nurodantis jų dydį, kad programa galėtų lengvai nustatyti vaizde naudojamą antraštę. Iš esmės taip yra dėl to, kad DIB formatas buvo kelis kartus pratęstas. Toliau pateikiama DIB antraštė su išvardytais laukais.

Spalvų paletė

BMP spalvų paletė yra masyvas struktūrų, kurios nurodo kiekvienos spalvos RGB intensyvumo reikšmes ekrano įrenginio spalvų paletėje. Kiekvienas bitmap duomenų pikselis saugo vieną reikšmę, naudojamą kaip indeksą spalvų paletėje. Spalvos informacija, saugoma elemente prie to indekso, nurodo to pikselio spalvą. Spalvų prieinamumas taškinio žemėlapio faile skiriasi taip:

  • Vieno, 4 ir 8 bitų – tikimasi, kad visada bus spalvų paletė

  • Šešiolika, 24 ir 32 bitų – niekada neturi spalvų palečių

  • Šešiolika ir 32 bitų BMP failai – vietoje spalvų paletės yra bitų laukų kaukės reikšmės

Pixel Storage

Bitmap pikseliai saugomi kaip bitai, supakuoti į eilutes, kurių kiekvienos eilutės dydis suapvalinamas iki 4 baitų kartotinio (32 bitų DWORD) užpildant. Bendras baitų kiekis, reikalingas vaizdo pikseliams saugoti, negali būti tiesiogiai apskaičiuotas skaičiuojant bitus. Kadangi reikalingas užpildymas, reikia suapvalinti kiekvienos eilutės dydį iki 4 baitų kartotinio. Papildymo baitai (nebūtinai 0) turi būti pridėti prie eilučių pabaigos, kad eilučių ilgis būtų keturių baitų kartotinis. Kai pikselių masyvas įkeliamas į atmintį, kiekviena eilutė turi prasidėti atminties adresu, kuris yra 4 kartotinis.

Vaizdas iš tikrųjų apibūdinamas 32 bitų DWORD pikselių masyvo atvaizdu. Paprastai pikseliai saugomi iš apačios į viršų, pradedant apatiniame kairiajame kampe, einant iš kairės į dešinę, o tada eilė po eilutės iš vaizdo apačios į viršų. Toliau pateikiami pikselių formatai ir jų reikšmė:

  • 1 bito pikselyje (1 bpp) formatas palaiko 2 skirtingas spalvas (pvz., juodą ir baltą).

  • 2 bitų pikselyje (2 bpp) formatas palaiko 4 skirtingas spalvas ir išsaugo 4 pikselius 1 baite, o kairysis pikselis yra dviejuose svarbiausiuose bituose. Kiekviena pikselio reikšmė yra 2 bitų indeksas į lentelę, kurioje yra iki 4 spalvų.

  • 4 bitų viename taške (4 bpp) formatas palaiko 16 skirtingų spalvų ir išsaugo 2 pikselius 1 baite, o kairysis pikselis yra reikšmingesniame įbrėžime. Kiekviena pikselio reikšmė yra 4 bitų indeksas į lentelę, kurioje yra iki 16 spalvų.

  • 8 bitų vienam pikseliui (8 bpp) formatas palaiko 256 skirtingas spalvas ir išsaugo 1 pikselį 1 baite. Kiekvienas baitas yra indeksas į lentelę, kurioje yra iki 256 spalvų.

  • 16 bitų vienam pikseliui (16 bpp) formatas palaiko 65536 skirtingas spalvas ir išsaugo 1 pikselį 2 baitų WORD. Kiekvienas WORD gali apibrėžti alfa, raudoną, žalią ir mėlyną pikselio pavyzdžius.

  • 24 bitų pikselių (24 bpp) formatas palaiko 16 777 216 skirtingų spalvų ir išsaugo 1 pikselio reikšmę 3 baituose. Kiekviena pikselio reikšmė apibrėžia raudoną, žalią ir mėlyną pikselio pavyzdžius (8.8.8.0.0 RGBAX žymėjime). Tiksliau, tokia tvarka: mėlyna, žalia ir raudona (8 bitai kiekvienam pavyzdžiui).

  • 32 bitų vienam pikseliui (32 bpp) formatas palaiko 4 294 967 296 skirtingas spalvas ir išsaugo 1 pikselį 4 baitų DWORD. Kiekvienas DWORD gali apibrėžti alfa, raudoną, žalią ir mėlyną pikselio pavyzdžius.

Nuorodos Nr.

Taip pat žiūrėkite