sig
  val check_header : string -> Images.header
  val load : string -> Images.load_option list -> Images.t
  val save : string -> Images.save_option list -> Images.t -> unit
  type bmp = {
    bmpFileHeader : Bmp.bitmapfileheader;
    bmpInfoHeader : Bmp.bitmapinfoheader;
    bmpRgbQuad : Images.rgb array;
    bmpBytes : string;
  }
  and bitmapfileheader = {
    bfType : int;
    bfSize : int;
    bfReserved1 : int;
    bfReserved2 : int;
    bfOffBits : int;
  }
  and bitmapinfoheader = {
    biSize : int;
    biWidth : int;
    biHeight : int;
    biPlanes : int;
    biBitCount : Bmp.bibitcount;
    biCompression : Bmp.bicompression;
    biSizeImage : int;
    biXPelsPerMeter : int;
    biYPelsPerMeter : int;
    biClrUsed : int;
    biClrImportant : int;
  }
  and bicompression = BI_RGB | BI_RLE8 | BI_RLE4
  and bibitcount = Monochrome | Color16 | Color256 | ColorM
  val load_bmp : string -> Bmp.bmp
  val save_bmp : string -> Bmp.bmp -> unit
end