sig
  module Encode : ENCODE
  type elt
  and bitmap
  and t = { width : int; height : int; bitmap : Image_intf.RAWIMAGE.bitmap; }
  val width : Image_intf.RAWIMAGE.t -> int
  val height : Image_intf.RAWIMAGE.t -> int
  val dump : Image_intf.RAWIMAGE.t -> string
  val create_with : int -> int -> string -> Image_intf.RAWIMAGE.t
  val create_with_scanlines :
    int -> int -> string array -> Image_intf.RAWIMAGE.t
  val create : int -> int -> Image_intf.RAWIMAGE.t
  val make : int -> int -> Image_intf.RAWIMAGE.elt -> Image_intf.RAWIMAGE.t
  val unsafe_access : Image_intf.RAWIMAGE.t -> int -> int -> string * int
  val get_strip : Image_intf.RAWIMAGE.t -> int -> int -> int -> string
  val set_strip :
    Image_intf.RAWIMAGE.t -> int -> int -> int -> string -> unit
  val get_scanline : Image_intf.RAWIMAGE.t -> int -> string
  val get_scanline_ptr :
    Image_intf.RAWIMAGE.t -> (int -> (string * int) * int) option
  val set_scanline : Image_intf.RAWIMAGE.t -> int -> string -> unit
  val unsafe_get :
    Image_intf.RAWIMAGE.t -> int -> int -> Image_intf.RAWIMAGE.elt
  val unsafe_set :
    Image_intf.RAWIMAGE.t -> int -> int -> Image_intf.RAWIMAGE.elt -> unit
  val get : Image_intf.RAWIMAGE.t -> int -> int -> Image_intf.RAWIMAGE.elt
  val set :
    Image_intf.RAWIMAGE.t -> int -> int -> Image_intf.RAWIMAGE.elt -> unit
  val destroy : Image_intf.RAWIMAGE.t -> unit
  val copy : Image_intf.RAWIMAGE.t -> Image_intf.RAWIMAGE.t
  val sub :
    Image_intf.RAWIMAGE.t ->
    int -> int -> int -> int -> Image_intf.RAWIMAGE.t
  val blit :
    Image_intf.RAWIMAGE.t ->
    int -> int -> Image_intf.RAWIMAGE.t -> int -> int -> int -> int -> unit
  val map :
    (Image_intf.RAWIMAGE.elt ->
     Image_intf.RAWIMAGE.elt -> Image_intf.RAWIMAGE.elt) ->
    Image_intf.RAWIMAGE.t ->
    int -> int -> Image_intf.RAWIMAGE.t -> int -> int -> int -> int -> unit
  val blocks : Image_intf.RAWIMAGE.t -> int * int
  val dump_block : Image_intf.RAWIMAGE.t -> int -> int -> Bitmap.Block.t
end