Gå til innhold

Lesing av 16bit float


Anbefalte innlegg

Jeg holder på med et program som skal ha muligheten til å lese tga filer.

problemet er at enkelte typer tga filer bruker 16bit float.

Så det jeg lurer på er hvordan skal jeg lese dette uten å måtte lese 1 og 1 bit for så regne ut verdien.

 

Litt info:

Jeg bruker: vs 7.0

Programmere for: win2k/winxp.

 

På forhånd takk.

Lenke til kommentar
Videoannonse
Annonse

http://astronomy.swin.edu.au/~pbourke/dataformats/tga/ - mye annet snacks der også.

http://netghost.narod.ru/gff/vendspec/tga/tga.txt

 

For Data Type field = Uncompressed, RGB images:

 

The bitsperpixel specifies the size of each colour value. When 24 or 32 the normal conventions apply. For 16 bits each colour component is stored as 5 bits and the remaining bit is a binary alpha value. The colour components are converted into single byte components by simply shifting each component up by 3 bits (multiply by 8).

 

      pixel->b =  (p[0] & 0x1f) << 3;

      pixel->g = ((p[1] & 0x03) << 6) | ((p[0] & 0xe0) >> 2);

      pixel->r =  (p[1] & 0x7c) << 1;

      pixel->a =  (p[1] & 0x80);

 

Eller var du ute etter 16-bit gråskala data?

tga_specification_2.pdf

Endret av hishadow
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...