Image.CanvasYUV420val create : int -> int -> tCreate an empty canvas.
val make : 
  ?width:int ->
  ?height:int ->
  ?x:int ->
  ?y:int ->
  Mm_image__ImageYUV420.t ->
  tCreate a canvas containing a given image. Negative dimensions are ignored, default ones are those of the image.
val width : t -> intWidth of the image.
val height : t -> intHeight of the image.
Change the width and height of the viewport of the canvas.
val size : t -> intSize of a canvas in bytes.
val planes : t -> intNumber of planes in the image.
val covering : t -> boolWhether the canvas covers the whole area with images (this function is imprecise: it might have false negatives).
val render : ?fresh:bool -> ?transparent:bool -> t -> Mm_image__ImageYUV420.tRender the canvas as an image. If fresh is set to true, the resulting can be modified in place. If transparent is set to true, the non-covered portions are made transparent.
Map a function on the underlying image. This of course triggers a render of the canvas.
Execute a function on the rendering of the canvas.
val bounding_box : t -> (int * int) * (int * int)Bouding box (smallest box enclosing all images contained in the canavs): returns the lower-left corner and the dimensions.
val scale : 
  ?scaler:(Mm_image__ImageYUV420.t -> Mm_image__ImageYUV420.t -> unit) ->
  Fraction.t ->
  Fraction.t ->
  t ->
  tScale the image proportionally by fractional coefficients with given numerator and denominator in the x and y directions. The viewport is left untouched. The scaler parameter can be specified in order to use a particular function to scale individual images. The viewport is left unchanged.
val resize : 
  ?proportional:bool ->
  ?scaler:(Mm_image__ImageYUV420.t -> Mm_image__ImageYUV420.t -> unit) ->
  int ->
  int ->
  t ->
  tResize the image, scaling and changing the viewport.
module Draw : sig ... end