sig
external initialize : unit -> unit = "caml_InitializeMagick"
external destroy : unit -> unit = "caml_DestroyMagick"
type image
type images
external read_image : filename:string -> Magick.image = "caml_ReadImage"
external write_image : Magick.image -> filename:string -> unit
= "caml_WriteImage"
external blob_to_image : blob:string -> Magick.image = "caml_BlobToImage"
external get_canvas :
width:int -> height:int -> color:string -> Magick.image
= "caml_CanvasImage"
external clone : Magick.image -> Magick.image = "caml_CloneImage"
external image_width : Magick.image -> int = "caml_ImageWidth"
external image_height : Magick.image -> int = "caml_ImageHeight"
external display : Magick.image -> unit = "caml_DisplayImages"
external destroy_image : Magick.image -> unit = "caml_DestroyImage"
val blur :
Magick.image -> ?radius:float -> sigma:float -> unit -> Magick.image
external motion_blur :
Magick.image ->
radius:float -> sigma:float -> angle:float -> Magick.image
= "caml_MotionBlurImage"
external emboss :
Magick.image -> radius:float -> sigma:float -> Magick.image
= "caml_EmbossImage"
external sharpen :
Magick.image -> radius:float -> sigma:float -> Magick.image
= "caml_SharpenImage"
external edge : Magick.image -> radius:float -> Magick.image
= "caml_EdgeImage"
external enhance : Magick.image -> Magick.image = "caml_EnhanceImage"
external shade :
Magick.image ->
gray:int -> azimuth:float -> elevation:float -> Magick.image
= "caml_ShadeImage"
external charcoal :
Magick.image -> radius:float -> sigma:float -> Magick.image
= "caml_CharcoalImage"
external implode : Magick.image -> amount:float -> Magick.image
= "caml_ImplodeImage"
external morph : Magick.images -> frames:int -> Magick.images
= "caml_MorphImages"
external oil_paint : Magick.image -> radius:float -> Magick.image
= "caml_OilPaintImage"
external swirl : Magick.image -> degrees:float -> Magick.image
= "caml_SwirlImage"
external wave :
Magick.image -> amplitude:float -> length:float -> Magick.image
= "caml_WaveImage"
external contrast : Magick.image -> sharpen:int -> unit
= "caml_ContrastImage"
external equalize : Magick.image -> unit = "caml_EqualizeImage"
external gamma : Magick.image -> level:string -> unit = "caml_GammaImage"
external level : Magick.image -> level:string -> unit = "caml_LevelImage"
module Channel :
sig
type channel_type =
Undefined
| Red
| Cyan
| Green
| Magenta
| Blue
| Yellow
| Opacity
| Black
| Matte
| All
| Gray
end
external level_channel :
Magick.image ->
channel:Magick.Channel.channel_type ->
black_point:float -> mid_point:float -> white_point:float -> unit
= "caml_LevelImageChannel"
external modulate : Magick.image -> string -> unit = "caml_ModulateImage"
external negate : Magick.image -> int -> unit = "caml_NegateImage"
external normalize : Magick.image -> unit = "caml_NormalizeImage"
external flip : Magick.image -> Magick.image = "caml_FlipImage"
external flop : Magick.image -> Magick.image = "caml_FlopImage"
type rectangle_info = { x : int; y : int; width : int; height : int; }
external crop : Magick.image -> Magick.rectangle_info -> Magick.image
= "caml_CropImage"
val shave : Magick.image -> int * int -> Magick.image
external roll :
Magick.image -> x_offset:int -> y_offset:int -> Magick.image
= "caml_RollImage"
external sample : Magick.image -> width:int -> height:int -> Magick.image
= "caml_SampleImage"
external scale : Magick.image -> width:int -> height:int -> Magick.image
= "caml_ScaleImage"
external thumbnail :
Magick.image -> width:int -> height:int -> Magick.image
= "caml_ThumbnailImage"
external magnify : Magick.image -> Magick.image = "caml_MagnifyImage"
external minify : Magick.image -> Magick.image = "caml_MinifyImage"
module Filter :
sig
type filter_type =
Undefined
| DefaultResize
| Point
| Box
| Triangle
| Hermite
| Hanning
| Hamming
| Blackman
| Gaussian
| Quadratic
| Cubic
| Catrom
| Mitchell
| Lanczos
| Bessel
| Sinc
end
val resize :
Magick.image ->
width:int ->
height:int ->
?filter:Magick.Filter.filter_type -> ?blur:float -> unit -> Magick.image
module CompositeOp :
sig
type composite_operator =
Undefined
| Over
| In
| Out
| Atop
| Xor
| Plus
| Minus
| Add
| Subtract
| Difference
| Multiply
| Bumpmap
| Copy
| CopyRed
| CopyGreen
| CopyBlue
| CopyOpacity
| Clear
| Dissolve
| Displace
| Modulate
| Threshold
| No
| Darken
| Lighten
| Hue
| Saturate
| Colorize
| Luminize
| Screen
| Overlay
| CopyCyan
| CopyMagenta
| CopyYellow
| CopyBlack
| Divide
| HardLight
| Exclusion
| ColorDodge
| ColorBurn
| SoftLight
| LinearBurn
| LinearDodge
| LinearLight
| VividLight
| PinLight
| HardMix
val to_string : Magick.CompositeOp.composite_operator -> string
val of_string : string -> Magick.CompositeOp.composite_operator
end
val composite :
Magick.image ->
compose:Magick.CompositeOp.composite_operator ->
Magick.image -> ?x_offset:int -> ?y_offset:int -> unit -> unit
module ImgList :
sig
type img_list = Magick.images
external new_image_list : unit -> Magick.ImgList.img_list
= "caml_NewImageList"
external destroy_image_list : Magick.ImgList.img_list -> unit
= "caml_DestroyImageList"
external append_image :
Magick.ImgList.img_list -> Magick.image -> Magick.ImgList.img_list
= "caml_AppendImageToList"
external prepend_image :
Magick.ImgList.img_list -> Magick.image -> Magick.ImgList.img_list
= "caml_PrependImageToList"
external get_first_image : Magick.ImgList.img_list -> Magick.image
= "caml_GetFirstImageInList"
external get_image :
Magick.ImgList.img_list -> offset:int -> Magick.image
= "caml_GetImageFromList"
external length : Magick.ImgList.img_list -> int
= "caml_GetImageListLength"
external get_index : Magick.ImgList.img_list -> int
= "caml_GetImageIndexInList"
end
module Draw :
sig
type context
external allocate_context : Magick.image -> Magick.Draw.context
= "caml_DrawAllocateContext"
external destroy_context : Magick.Draw.context -> unit
= "caml_DrawDestroyContext"
external stroke_color_string : Magick.Draw.context -> string -> unit
= "caml_DrawSetStrokeColorString"
external fill_color_string : Magick.Draw.context -> string -> unit
= "caml_DrawSetFillColorString"
external stroke_width : Magick.Draw.context -> float -> unit
= "caml_DrawSetStrokeWidth"
external circle :
Magick.Draw.context ->
ox:float -> oy:float -> px:float -> py:float -> unit
= "caml_DrawCircle"
external line :
Magick.Draw.context ->
x1:float -> y1:float -> x2:float -> y2:float -> unit
= "caml_DrawLine"
external rectangle :
Magick.Draw.context ->
x1:float -> y1:float -> x2:float -> y2:float -> unit
= "caml_DrawRectangle"
external round_rectangle :
Magick.Draw.context ->
p1:float * float -> p2:float * float -> r:float * float -> unit
= "caml_DrawRoundRectangle"
external arc :
Magick.Draw.context ->
p1:float * float -> p2:float * float -> rot:float * float -> unit
= "caml_DrawArc"
external ellipse :
Magick.Draw.context ->
o:float * float -> r:float * float -> rot:float * float -> unit
= "caml_DrawEllipse"
external bezier :
Magick.Draw.context -> coords:(float * float) array -> unit
= "caml_DrawBezier"
external render : Magick.Draw.context -> unit = "caml_DrawRender"
end
external describe : Magick.image -> unit = "caml_DescribeImage"
external set_image_attribute :
Magick.image -> key:string -> value:string -> unit
= "caml_SetImageAttribute"
external get_image_attribute : Magick.image -> key:string -> string
= "caml_GetImageAttribute"
end