A bitmaps storing a pixel data of predefined dimensions (x,y). A bitmap describes what components each pixel carries, as well as how these components laid out in memory (byte array) to access them.
Bitmaps should contain a following information:
color component types:
- RGB color channels
- Intensity (grayscale, alpha channel etc)
- Grayscale intensity and Aplha
- component ordering (if there are more than one).
A component values can be stored in multiple ways:
- 1, 8, 16, 32 bits per component, representing an unsigned integer values
- compressed formats, like R5G5B6? etc
- scanline stride (a number of bytes between each scan line)
There are numerous ways how one could encode pixel data, but initially we want to support most commonly used ones.