Module Magick.Imper


module Imper: sig .. end

val plasma_image : Magick.image_handle ->
x1:int -> y1:int -> x2:int -> y2:int -> attenuate:int -> depth:int -> unit
val flip : Magick.image_handle -> unit
val flop : Magick.image_handle -> unit
val magnify : Magick.image_handle -> unit
val minify : Magick.image_handle -> unit
val enhance : Magick.image_handle -> unit
val trim : Magick.image_handle -> unit
val despeckle : Magick.image_handle -> unit
val negate : Magick.image_handle -> ?grayscale:Magick.magick_boolean -> unit -> unit
val contrast : Magick.image_handle -> sharpen:Magick.magick_boolean -> unit
val equalize : Magick.image_handle -> unit
val normalize : Magick.image_handle -> unit
val white_threshold : Magick.image_handle -> threshold:string -> unit
val black_threshold : Magick.image_handle -> threshold:string -> unit
val cyclecolormap : Magick.image_handle -> displace:int -> unit
val solarize : Magick.image_handle -> threshold:float -> unit
val modulate' : Magick.image_handle -> factors:string -> unit
val modulate : Magick.image_handle ->
?brightness:int -> ?saturation:int -> ?hue:int -> unit -> unit
val blur : Magick.image_handle -> ?radius:float -> sigma:float -> unit -> unit
val gaussian_blur : Magick.image_handle -> ?radius:float -> sigma:float -> unit -> unit
val motion_blur : Magick.image_handle ->
?radius:float -> sigma:float -> angle:float -> unit -> unit
val charcoal : Magick.image_handle -> ?radius:float -> sigma:float -> unit -> unit
val edge : Magick.image_handle -> radius:float -> unit
val emboss : Magick.image_handle -> ?radius:float -> sigma:float -> unit -> unit
val implode : Magick.image_handle -> amount:float -> unit
val medianfilter : Magick.image_handle -> radius:float -> unit
val oilpaint : Magick.image_handle -> radius:float -> unit
val reduce_noise : Magick.image_handle -> radius:float -> unit
val roll : Magick.image_handle -> x:int -> y:int -> unit
val shade : Magick.image_handle ->
?gray:Magick.magick_boolean ->
azimuth:float -> elevation:float -> unit -> unit
val spread : Magick.image_handle -> radius:float -> unit
val swirl : Magick.image_handle -> degrees:float -> unit
val sharpen : Magick.image_handle -> ?radius:float -> sigma:float -> unit -> unit
val unsharpmask : Magick.image_handle ->
radius:float -> sigma:float -> amount:float -> threshold:float -> unit
val wave : Magick.image_handle -> amplitude:float -> wave_length:float -> unit
val rotate : Magick.image_handle -> degrees:float -> unit
val shear : Magick.image_handle -> x:float -> y:float -> unit
val affine_transform : Magick.image_handle ->
?tx:float ->
?ty:float -> ?sx:float -> ?sy:float -> ?rx:float -> ?ry:float -> unit -> unit
val adaptive_threshold : Magick.image_handle -> width:int -> height:int -> offset:int -> unit
val crop : Magick.image_handle -> x:int -> y:int -> width:int -> height:int -> unit
val chop : Magick.image_handle -> x:int -> y:int -> width:int -> height:int -> unit
val splice : Magick.image_handle -> x:int -> y:int -> width:int -> height:int -> unit
val colorize : Magick.image_handle -> string -> int -> int -> int -> int -> unit
val acquire_pixel : Magick.image_handle -> int -> int -> int * int * int * int
val composite_image : Magick.image_handle ->
Magick.image_handle ->
compose:Magick.composite_operator -> ?x:int -> ?y:int -> unit -> unit
val texture_image : Magick.image_handle -> Magick.image_handle -> unit
val bilevel_channel : Magick.image_handle -> channel:Magick.channel_type -> float -> unit
val blur_channel : Magick.image_handle ->
channel:Magick.channel_type -> ?radius:float -> sigma:float -> unit -> unit
val gaussian_blur_channel : Magick.image_handle ->
channel:Magick.channel_type -> ?radius:float -> sigma:float -> unit -> unit
val radial_blur : Magick.image_handle -> angle:float -> unit
val radial_blur_channel : Magick.image_handle -> channel:Magick.channel_type -> angle:float -> unit
val sharpen_image_channel : Magick.image_handle ->
channel:Magick.channel_type -> ?radius:float -> sigma:float -> unit -> unit
val add_noise : Magick.image_handle -> Magick.noise_type -> unit
val resize : Magick.image_handle ->
width:int -> height:int -> filter:Magick.resize_filter -> blur:float -> unit
val sample : Magick.image_handle -> width:int -> height:int -> unit
val scale : Magick.image_handle -> width:int -> height:int -> unit
val thumbnail : Magick.image_handle -> width:int -> height:int -> unit
val set_image_colors : Magick.image_handle -> int -> unit
val set_compression_quality : Magick.image_handle -> int -> unit
val set_image_type : Magick.image_handle -> image_type:Magick.image_type -> unit
val set_type : Magick.image_handle -> unit
val strip_image : Magick.image_handle -> unit
val level : Magick.image_handle -> string -> unit
val level_channel : Magick.image_handle ->
channel:Magick.channel_type -> float -> float -> float -> unit
val gamma_channel : Magick.image_handle -> channel:Magick.channel_type -> gamma:float -> unit
val negate_channel : Magick.image_handle ->
channel:Magick.channel_type -> Magick.magick_boolean -> unit
val ordered_dither : Magick.image_handle -> unit
val compress_colormap : Magick.image_handle -> unit
val posterize : Magick.image_handle -> levels:int -> dither:Magick.magick_boolean -> unit
val map_image : Magick.image_handle ->
map_image:Magick.image_handle -> dither:Magick.magick_boolean -> unit
val is_gray : Magick.image_handle -> bool
val is_monochrome : Magick.image_handle -> bool
val is_opaque : Magick.image_handle -> bool
val is_palette : Magick.image_handle -> bool
val is_taint : Magick.image_handle -> bool
val is_equal : Magick.image_handle -> Magick.image_handle -> bool * float * float * float

type line_cap =
| UndefinedCap
| ButtCap
| RoundCap
| SquareCap

type line_join =
| UndefinedJoin
| MiterJoin
| RoundJoin
| BevelJoin
type color = int * int * int * int 
val channels_of_color : color -> int * int * int * int
val acquire_pixel_opacity : Magick.image_handle -> int -> int -> int * int * int * int
val set_image_opacity : Magick.image_handle -> opacity:int -> unit
val color_of_string : string -> color
val color_of_rgbo_tuple : int * int * int * int -> color
val rgbo_tuple_of_color : color -> int * int * int * int
val max_color_map : int
val add_colors : color -> color -> color
val sub_colors : color -> color -> color
val mul_colors : color -> color -> color
val dump_color : color -> unit
val div_colors : color -> color -> color
val rgb_string_of_color : color -> string
val rgba_string_of_color : color -> string
val hexa_string_of_color : color -> string
val color_of_hex : string -> int * int * int * int
val black : color
val transparent : color

type affine_matrix = {
   sx : float;
   rx : float;
   ry : float;
   sy : float;
   tx : float;
   ty : float;
}
val identity_matrix : affine_matrix
val tuple_of_matrix : affine_matrix:affine_matrix ->
float * float * float * float * float * float
val set_pixel : Magick.image_handle ->
x:int -> y:int -> red:int -> green:int -> blue:int -> opacity:int -> unit
val draw_point : Magick.image_handle -> x:int -> y:int -> color:color -> unit
val draw_line : Magick.image_handle ->
x0:int ->
y0:int ->
x1:int ->
y1:int ->
?fill_color:color ->
?stroke_color:color ->
?stroke_antialias:Magick.magick_boolean ->
?stroke_width:float -> ?line_cap:line_cap -> unit -> unit
val draw_circle : Magick.image_handle ->
x0:int ->
y0:int ->
x1:int ->
y1:int ->
?fill_color:color ->
?stroke_color:color ->
?stroke_width:float ->
?stroke_antialias:Magick.magick_boolean ->
?affine_matrix:affine_matrix -> unit -> unit
val draw_rectangle : Magick.image_handle ->
x0:int ->
y0:int ->
x1:int ->
y1:int ->
?fill_color:color ->
?stroke_color:color ->
?stroke_width:float ->
?stroke_antialias:Magick.magick_boolean ->
?line_join:line_join ->
?affine_matrix:affine_matrix -> unit -> unit
val draw_round_rectangle : Magick.image_handle ->
x0:int ->
y0:int ->
x1:int ->
y1:int ->
wc:int ->
hc:int ->
?fill_color:color ->
?stroke_color:color ->
?stroke_antialias:Magick.magick_boolean ->
?stroke_width:float ->
?affine_matrix:affine_matrix -> unit -> unit
val draw_arc : Magick.image_handle ->
x0:int ->
y0:int ->
x1:int ->
y1:int ->
a0:int ->
a1:int ->
?fill_color:color ->
?stroke_color:color ->
?stroke_antialias:Magick.magick_boolean ->
?stroke_width:float ->
?line_cap:line_cap ->
?affine_matrix:affine_matrix -> unit -> unit
val draw_ellipse : Magick.image_handle ->
cx:int ->
cy:int ->
rx:int ->
ry:int ->
?a0:int ->
?a1:int ->
?fill_color:color ->
?stroke_color:color ->
?stroke_antialias:Magick.magick_boolean ->
?stroke_width:float ->
?affine_matrix:affine_matrix -> unit -> unit
val draw_polyline : Magick.image_handle ->
coords:(int * int) array ->
?fill_color:color ->
?stroke_color:color ->
?stroke_antialias:Magick.magick_boolean ->
?stroke_width:float ->
?line_join:line_join ->
?line_cap:line_cap ->
?affine_matrix:affine_matrix -> unit -> unit
val draw_polygon : Magick.image_handle ->
coords:(int * int) array ->
?fill_color:color ->
?stroke_color:color ->
?stroke_antialias:Magick.magick_boolean ->
?stroke_width:float ->
?line_join:line_join ->
?affine_matrix:affine_matrix -> unit -> unit
val draw_bezier : Magick.image_handle ->
coords:(int * int) array ->
?fill_color:color ->
?stroke_color:color ->
?stroke_antialias:Magick.magick_boolean ->
?stroke_width:float ->
?line_cap:line_cap ->
?affine_matrix:affine_matrix -> unit -> unit
val draw_path : Magick.image_handle ->
path:string ->
?fill_color:color ->
?stroke_color:color ->
?stroke_antialias:Magick.magick_boolean ->
?stroke_width:float ->
?line_join:line_join ->
?line_cap:line_cap ->
?affine_matrix:affine_matrix -> unit -> unit

type style_type =
| Undefined_Style
| Normal_Style
| Italic
| Oblique
| Any_Style

type decoration_type =
| Undefined_Decoration
| No_Decoration
| Underline
| Overline
| LineThrough

type stretch_type =
| Undefined_Stretch
| Normal_Stretch
| UltraCondensed
| ExtraCondensed
| Condensed
| SemiCondensed
| SemiExpanded
| Expanded
| ExtraExpanded
| UltraExpanded
| Any_Stretch
val draw_text : Magick.image_handle ->
text:string ->
?font:string ->
x:int ->
y:int ->
point_size:float ->
?density_x:int ->
?density_y:int ->
?style:style_type ->
?weight:int ->
?fill_color:color ->
?stroke_color:color ->
?decoration:decoration_type ->
?stretch:stretch_type ->
?stroke_width:float ->
?stroke_antialias:Magick.magick_boolean ->
?text_antialias:Magick.magick_boolean ->
?encoding:string -> ?affine_matrix:affine_matrix -> unit -> unit

type metrics_infos = {
   ascent : float;
   descent : float;
   text_width : float;
   text_height : float;
   max_advance : float;
   underline_position : float;
   underline_thickness : float;
   pixels_per_em_x : float;
   pixels_per_em_y : float;
   bounds_x1 : float;
   bounds_y1 : float;
   bounds_x2 : float;
   bounds_y2 : float;
}
val get_metrics : Magick.image_handle ->
text:string ->
?font:string ->
x:int ->
y:int ->
point_size:float ->
?density_x:int ->
?density_y:int ->
?style:style_type ->
?weight:int ->
?decoration:decoration_type ->
?stretch:stretch_type ->
?stroke_width:float -> unit -> metrics_infos
val transform_metrics : metrics:metrics_infos ->
affine_matrix:affine_matrix -> metrics_infos
val draw_text_devel : Magick.image_handle -> text:string -> unit
val draw_mvg : Magick.image_handle -> mvg:string -> unit
val get_raw : Magick.image_handle -> (int * int * int * int) array array
val get_raw' : Magick.image_handle -> (int * int * int * int) array array
val get_raw_opacity : Magick.image_handle -> (int * int * int * int) array array
val get_raw_without_alpha : Magick.image_handle -> (int * int * int) array array
val get_raw_gl_indexed : Magick.image_handle -> (int * int * int * int) array
val get_raw_gl_indexed_without_alpha : Magick.image_handle -> (int * int * int) array
val set_raw : raw:(int * int * int * int) array array -> Magick.image_handle
val set_raw_c : raw:(int * int * int * int) array array -> Magick.image_handle
type image_list_handle 
val new_image_list : unit -> image_list_handle
val no_op : Magick.image_handle -> unit
val display_images : image_list_handle -> unit
val append_image_to_list : image_list_handle ->
Magick.image_handle -> ?delay:int -> unit -> unit
val image_list_length : image_list_handle -> int
val deconstruct_images : image_list_handle -> unit
val coalesce_images : image_list_handle -> unit
val flatten_images : image_list_handle -> unit
val average_images : image_list_handle -> Magick.image_handle
val animate_images : image_list_handle -> unit
val write_images : image_list_handle -> string -> unit
val get_last_image_in_list : image_list_handle -> Magick.image_handle
val get_first_image_in_list : image_list_handle -> Magick.image_handle
val has_link : Magick.image_handle -> bool

type stack =
| Left_to_right
| Top_to_bottom
val stack_dir_of_string : stack:string -> stack
val append_images : image_list_handle ->
stack:stack -> Magick.image_handle