sig
  type elt = Color.rgb
  type rawimage
  type t = {
    width : int;
    height : int;
    rawimage : Rgb24.rawimage;
    mutable infos : Info.info list;
  }
  val resize : (float -> unit) option -> Rgb24.t -> int -> int -> Rgb24.t
  val to_rgba32 : Rgb24.t -> Rgba32.t
  val of_rgba32 : Rgba32.t -> Rgb24.t
  val create_with : int -> int -> Info.info list -> bytes -> Rgb24.t
  val create_with_scanlines :
    int -> int -> Info.info list -> bytes array -> Rgb24.t
  val create : int -> int -> Rgb24.t
  val make : int -> int -> Rgb24.elt -> Rgb24.t
  val destroy : Rgb24.t -> unit
  val get : Rgb24.t -> int -> int -> Rgb24.elt
  val set : Rgb24.t -> int -> int -> Rgb24.elt -> unit
  val unsafe_get : Rgb24.t -> int -> int -> Rgb24.elt
  val unsafe_set : Rgb24.t -> int -> int -> Rgb24.elt -> unit
  val get_strip : Rgb24.t -> int -> int -> int -> bytes
  val set_strip : Rgb24.t -> int -> int -> int -> bytes -> unit
  val get_scanline : Rgb24.t -> int -> bytes
  val get_scanline_ptr : Rgb24.t -> (int -> (bytes * int) * int) option
  val set_scanline : Rgb24.t -> int -> bytes -> unit
  val blit :
    Rgb24.t -> int -> int -> Rgb24.t -> int -> int -> int -> int -> unit
  val map :
    (Rgb24.elt -> Rgb24.elt -> Rgb24.elt) ->
    Rgb24.t -> int -> int -> Rgb24.t -> int -> int -> int -> int -> unit
  val blocks : Rgb24.t -> int * int
  val dump_block : Rgb24.t -> int -> int -> Bitmap.Block.t
  val copy : Rgb24.t -> Rgb24.t
  val sub : Rgb24.t -> int -> int -> int -> int -> Rgb24.t
  val dump : Rgb24.t -> bytes
  val unsafe_access : Rgb24.t -> int -> int -> bytes * int
  val rawimage : Rgb24.t -> Rgb24.rawimage
end