# Image and Depth Map Buffer

The pixels of an image and of an depth map are stored contiguously into a buffer, from left to right and from top to bottom, in the Windows bitmap format (top-down DIB -device-independent bitmap-).

The buffer address is a pointer to the address that contains the top left pixel of the image.

* Image buffer pitch
  * The alignment must be a multiple of 4 bytes.
  * The default pitch in **eVision** is 32 bytes for performance reasons.
    ![image](assets/images/conventions/imagebuffer.webp)

## Memory layout

| Image format                                                                                                                                                                                                                                                                                                                                                                                                                             | Layout                                                                                                                       | Illustration                                              |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------|
| [`EImageBW8`](../doxygen_cpp/classeVision_1_1EImageBW8.html) [<sub>.NET</sub>](../doxygen_cs/classeVision_1_1EImageBW8.html) [<sub>Python</sub>](../doxygen_python/classeVision_1_1EImageBW8.html), [`EDepthMap8`](../doxygen_cpp/classeVision_1_1Easy3D_1_1EDepthMap8.html) [<sub>.NET</sub>](../doxygen_cs/classeVision_1_1Easy3D_1_1EDepthMap8.html) [<sub>Python</sub>](../doxygen_python/classeVision_1_1Easy3D_1_1EDepthMap8.html) | Store 1 pixel in 1 byte                                                                                                      | ![image](assets/images/conventions/memorylayoutbw8.webp)  |
| [`EImageBW16`](../doxygen_cpp/classeVision_1_1EImageBW16.html) [<sub>.NET</sub>](../doxygen_cs/classeVision_1_1EImageBW16.html) [<sub>Python</sub>](../doxygen_python/classeVision_1_1EImageBW16.html)                                                                                                                                                                                                                                   | Stores 1 pixel in 2 bytes                                                                                                    | ![image](assets/images/conventions/memorylayoutbw16.webp) |
| [`EDepthMap16`](../doxygen_cpp/classeVision_1_1Easy3D_1_1EDepthMap16.html) [<sub>.NET</sub>](../doxygen_cs/classeVision_1_1Easy3D_1_1EDepthMap16.html) [<sub>Python</sub>](../doxygen_python/classeVision_1_1Easy3D_1_1EDepthMap16.html)                                                                                                                                                                                                 | Stores 1 pixel in 2 bytes (fixed point format)                                                                               |                                                           |
| [`EImageC24`](../doxygen_cpp/classeVision_1_1EImageC24.html) [<sub>.NET</sub>](../doxygen_cs/classeVision_1_1EImageC24.html) [<sub>Python</sub>](../doxygen_python/classeVision_1_1EImageC24.html)                                                                                                                                                                                                                                       | Stores 1 pixel in 3 bytes<br/><br/>* Each color component is coded with 8 bits                                               | ![image](assets/images/conventions/memorylayoutc24.webp)  |
| [`EImageC24A`](../doxygen_cpp/classeVision_1_1EImageC24A.html) [<sub>.NET</sub>](../doxygen_cs/classeVision_1_1EImageC24A.html) [<sub>Python</sub>](../doxygen_python/classeVision_1_1EImageC24A.html)                                                                                                                                                                                                                                   | Stores 1 pixel in 4 bytes.<br/><br/>* Each color component is coded with 8 bits<br/>* The alpha channel is coded with 8 bits | ![image](assets/images/conventions/memorylayoutc24a.webp) |
| [`EDepthMap32f`](../doxygen_cpp/classeVision_1_1Easy3D_1_1EDepthMap32f.html) [<sub>.NET</sub>](../doxygen_cs/classeVision_1_1Easy3D_1_1EDepthMap32f.html) [<sub>Python</sub>](../doxygen_python/classeVision_1_1Easy3D_1_1EDepthMap32f.html)                                                                                                                                                                                             | Stores 1 pixel in 4 bytes (float format)                                                                                     |                                                           |
