Section Header
    + name := BMP_HEADER;
    - comment := "Mapping BMP Image File Header structure";
Section Inherit
    - parent_object:OBJECT :=
Section Mapping
File Header
    + file_type1:CHARACTER;
        00h Must be 'B'
    + file_type2:CHARACTER;
        01h Must be 'M'
    + file_size:UINTEGER_32;
        02h Size of file
    + reserved:UINTEGER_32;
        06h
    + map_bitmap_offset:UINTEGER_32;
        0Ah Offset of the data section
Bitmap Header
    + header_size:UINTEGER_32;
        0Eh Size of this header
    + map_width:INTEGER;
        12h width (in pixel) of the image
    + map_height:INTEGER;
        16h height (in pixel)
    + planes:UINTEGER_16;
        1Ah number of planes use (always 1)
    + bits_per_pixel:UINTEGER_16;
        1Ch number of bits per pixel (1,4,8,16,24,32)
    + compression:UINTEGER_32;
        1Eh compression method:
        0: no compression
        1: 8-bit run length encoding
        2: 4-bit run length encoding
        3: bitfields encoding
    + size_of_bitmap:UINTEGER_32;
        22h size of image (in octet), useful for compression
    + h_resolution:UINTEGER_32;
        26h horizontal resolution (in pixel per meter)
    + v_resolution:UINTEGER_32;
        2Ah vertical resolution (in pixel per meter)
    + colors_used:UINTEGER_32;
        2Eh number of colors
    + colors_important:UINTEGER_32;
        32h number of important colors
Section Public
    - width :INTEGER <-
    - height:INTEGER <-
    - bitmap_offset:UINTEGER_32 <-
    - file_type:STRING <-
    - is_valid_bmp:BOOLEAN <-
    - is_bgr_format:BOOLEAN <-
    - get_nb_colors:INTEGER <-
    - is_1bit:BOOLEAN <-
    - is_4bit:BOOLEAN <-
    - is_8bit:BOOLEAN <-
    - is_24bit:BOOLEAN <-
    - is_rle8_compressed:BOOLEAN <-
    - print <-