sig
  type t
  val make :
    int ->
    int ->
    Image.Data.t ->
    int -> Image.Data.t -> Image.Data.t -> int -> Image.YUV420.t
  val make_data : int -> int -> Image.Data.t -> int -> int -> Image.YUV420.t
  val create :
    ?y_stride:int -> ?uv_stride:int -> int -> int -> Image.YUV420.t
  val ensure_alpha : Image.YUV420.t -> unit
  val remove_alpha : Image.YUV420.t -> unit
  val of_YUV420_string :
    ?y_stride:int -> ?uv_stride:int -> string -> int -> int -> Image.YUV420.t
  val of_RGB24_string : string -> int -> Image.YUV420.t
  val of_RGBA32 : Image.RGBA32.t -> Image.YUV420.t
  val to_RGBA32 : Image.YUV420.t -> Image.RGBA32.t
  val of_PPM : string -> Image.YUV420.t
  val width : Image.YUV420.t -> int
  val height : Image.YUV420.t -> int
  val y : Image.YUV420.t -> Image.Data.t
  val y_stride : Image.YUV420.t -> int
  val u : Image.YUV420.t -> Image.Data.t
  val v : Image.YUV420.t -> Image.Data.t
  val uv_stride : Image.YUV420.t -> int
  val data : Image.YUV420.t -> Image.Data.t * Image.Data.t * Image.Data.t
  val alpha : Image.YUV420.t -> Image.Data.t option
  val dimensions : Image.YUV420.t -> int * int
  val size : Image.YUV420.t -> int
  val has_alpha : Image.YUV420.t -> bool
  val copy : Image.YUV420.t -> Image.YUV420.t
  val blit_all : Image.YUV420.t -> Image.YUV420.t -> unit
  val blit : Image.YUV420.t -> Image.YUV420.t -> unit
  val scale : ?proportional:bool -> Image.YUV420.t -> Image.YUV420.t -> unit
  val blank_all : Image.YUV420.t -> unit
  val add : Image.YUV420.t -> ?x:int -> ?y:int -> Image.YUV420.t -> unit
  val blank : Image.YUV420.t -> unit
  val fill : Image.YUV420.t -> Image.Pixel.yuv -> unit
  val fill_alpha : Image.YUV420.t -> int -> unit
  val disk_alpha : Image.YUV420.t -> int -> int -> int -> unit
  val randomize : Image.YUV420.t -> unit
  val get_pixel_y : Image.YUV420.t -> int -> int -> int
  val get_pixel_u : Image.YUV420.t -> int -> int -> int
  val get_pixel_v : Image.YUV420.t -> int -> int -> int
  val get_pixel_rgba : Image.YUV420.t -> int -> int -> Image.Pixel.rgba
  val set_pixel_rgba :
    Image.YUV420.t -> int -> int -> Image.Pixel.rgba -> unit
  val to_int_image : Image.YUV420.t -> int array array
  module Effect :
    sig
      val greyscale : Image.YUV420.t -> unit
      val sepia : Image.YUV420.t -> unit
      val invert : Image.YUV420.t -> unit
      val lomo : Image.YUV420.t -> unit
    end
end