sig
  type image_type = [ `FASTEST | `NORMAL | `SHARED ]
  val create :
    kind:Gdk.Image.image_type ->
    visual:Gdk.visual -> width:int -> height:int -> Gdk.image
  val get :
    [> `drawable ] Gobject.obj ->
    x:int -> y:int -> width:int -> height:int -> Gdk.image
  val put_pixel : Gdk.image -> x:int -> y:int -> pixel:int -> unit
  val get_pixel : Gdk.image -> x:int -> y:int -> int
  val destroy : Gdk.image -> unit
  val width : Gdk.image -> int
  val height : Gdk.image -> int
  val depth : Gdk.image -> int
  val get_visual : Gdk.image -> Gdk.visual
end