BMP-vormingus bisizeimage, bisize ja bfsize erinevus

Difference Between Bisizeimage



Kodutööde kirjutamisel olin segaduses nende kolme erinevuse pärast. Ma ei leidnud Internetist üksikasjalikku tutvustust.
Järgmisele kirjeldusele võib viidata allpool.

bfSize on bitikaardipildi täielik failisuurus. Bittkaardipildi failisuurus koosneb kahest osast:
Päiseosa (üldise teabega faili = bfOffBits kohta)
ja pildi osa (kuhu piksliteave on salvestatud = biSizeImage)



Seetõttu on meil järgmine struktuur



bfSize = bfOffBits + biSizeImage

Lisaks, bfOffBits (pealkirjaosa) Saab veel jagada
faili päis ja
päis (biSize)



Seetõttu võib selle kirjutada ka järgmiselt

bfSize = 14 + 40 + biSizeImage

Mõlemad

bfSize = 54 + biSizeImage

See oleks aga halb tava, sest raskekodeeritud „maagilised numbrid” on tavaliselt ebapopulaarsed.
Vaatame aga biSizeImage . Üldiselt koosneb pildi failisuurus värvide sügavusest * laiusest * kõrgusest. Värvisügavus 24-bitises BMP-s on 3 baiti piksli kohta (vastavalt sinine, roheline ja punane, 0–255 väärtust) - nn RGB kolmik. Ekspertide lisateave: Kolmes värvis olevad väärtused salvestatakse sinises, rohelises ja punases järjestuses - selle teema kohta lisateabe saamiseks otsige märksõna LittleEndianness. Kui pildi laiust ei saa jagada 4 baidiga, lisab BMP standard polstrina ka 0.



Nagu teised on märkinud, on see veidi segane ja nüüd peate piksli suuruse korrutama baidi sügavusega. Nii et meil on

biSizeImage = (biWidth * sizeof(RGBTRIPLE) + padding) * abs(biHeight)

See annab teile pildi lõpliku baidi suuruse.

Niisiis, jõudke järeldusele:

biSizeImage = BMP-pildiosa faili suurus baitides
biSize = BMP päise infopäise osa faili suurus (baitides)
Bfsize = kogu BMP faili suurus (baitides) (sh pealkiri ja pilt ise)

Loodan aidata mõista, (https Algne link )