<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of class methods" rel=Appendix href="index_methods.html"> <link title="Index of classes" rel=Appendix href="index_classes.html"> <link title="Index of class types" rel=Appendix href="index_class_types.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Audio" rel="Chapter" href="Audio.html"> <link title="Image" rel="Chapter" href="Image.html"> <link title="MIDI" rel="Chapter" href="MIDI.html"> <link title="Ringbuffer" rel="Chapter" href="Ringbuffer.html"> <link title="Synth" rel="Chapter" href="Synth.html"> <link title="Video" rel="Chapter" href="Video.html"><title>Image</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="constructor">RGB8</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="constructor">Color</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = int * int * int<br> <span class="keyword">val</span> of_int : int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGB8</span>.<span class="constructor">Color</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">YUV420</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> data =<br> (int, <span class="constructor">Bigarray</span>.int8_unsigned_elt, <span class="constructor">Bigarray</span>.c_layout)<br> <span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t<br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> width : <span class="constructor">Image</span>.<span class="constructor">YUV420</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> height : <span class="constructor">Image</span>.<span class="constructor">YUV420</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">YUV420</span>.t<br> <span class="keyword">val</span> blank_all : <span class="constructor">Image</span>.<span class="constructor">YUV420</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> make :<br> int <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span><br> <span class="constructor">Image</span>.<span class="constructor">YUV420</span>.data <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span><br> <span class="constructor">Image</span>.<span class="constructor">YUV420</span>.data <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">YUV420</span>.data <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">YUV420</span>.t<br> <span class="keyword">val</span> internal :<br> <span class="constructor">Image</span>.<span class="constructor">YUV420</span>.t <span class="keywordsign">-></span><br> (<span class="constructor">Image</span>.<span class="constructor">YUV420</span>.data * int) *<br> (<span class="constructor">Image</span>.<span class="constructor">YUV420</span>.data * <span class="constructor">Image</span>.<span class="constructor">YUV420</span>.data * int)<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">BGRA</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> data =<br> (int, <span class="constructor">Bigarray</span>.int8_unsigned_elt, <span class="constructor">Bigarray</span>.c_layout)<br> <span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t<br> <span class="keyword">val</span> data : <span class="constructor">Image</span>.<span class="constructor">BGRA</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">BGRA</span>.data<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">RGBA32</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="constructor">Color</span> : <span class="keyword">sig</span> <span class="keyword">type</span> t = int * int * int * int <span class="keyword">end</span><br> <span class="keyword">type</span> data =<br> (int, <span class="constructor">Bigarray</span>.int8_unsigned_elt, <span class="constructor">Bigarray</span>.c_layout)<br> <span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t<br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> width : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> height : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> dimensions : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> int * int<br> <span class="keyword">val</span> data : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.data<br> <span class="keyword">val</span> stride : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t<br> <span class="keyword">val</span> make :<br> ?stride:int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.data <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t<br> <span class="keyword">val</span> get_pixel : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.<span class="constructor">Color</span>.t<br> <span class="keyword">val</span> set_pixel :<br> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.<span class="constructor">Color</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> copy : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t<br> <span class="keyword">val</span> blit :<br> ?blank:bool <span class="keywordsign">-></span><br> ?x:int <span class="keywordsign">-></span><br> ?y:int <span class="keywordsign">-></span><br> ?w:int <span class="keywordsign">-></span> ?h:int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> blit_all : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> of_RGB24_string : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t<br> <span class="keyword">val</span> to_RGB24_string : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> of_BGRA : <span class="constructor">Image</span>.<span class="constructor">BGRA</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t<br> <span class="keyword">val</span> to_BGRA : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">BGRA</span>.t<br> <span class="keyword">val</span> of_YUV420 : <span class="constructor">Image</span>.<span class="constructor">YUV420</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t<br> <span class="keyword">val</span> to_int_image : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> int array array<br> <span class="keyword">val</span> to_BMP : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> of_PPM : ?alpha:<span class="constructor">Image</span>.<span class="constructor">RGB8</span>.<span class="constructor">Color</span>.t <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t<br> <span class="keyword">val</span> swap_rb : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add :<br> ?x:int <span class="keywordsign">-></span><br> ?y:int <span class="keywordsign">-></span><br> ?w:int <span class="keywordsign">-></span> ?h:int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fill_all : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.<span class="constructor">Color</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> blank_all : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> randomize_all : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">module</span> <span class="constructor">Scale</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> kind = <span class="constructor">Linear</span> <span class="keywordsign">|</span> <span class="constructor">Bilinear</span><br> <span class="keyword">val</span> onto :<br> ?kind:<span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.<span class="constructor">Scale</span>.kind <span class="keywordsign">-></span><br> ?proportional:bool <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> create :<br> ?kind:<span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.<span class="constructor">Scale</span>.kind <span class="keywordsign">-></span><br> ?copy:bool <span class="keywordsign">-></span><br> ?proportional:bool <span class="keywordsign">-></span><br> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Effect</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> translate : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> affine : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> float <span class="keywordsign">-></span> float <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> greyscale : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> sepia : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> lomo : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> invert : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> rotate : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> mask : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> box_blur : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">module</span> <span class="constructor">Alpha</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> blur : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> scale : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> float <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> disk : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> of_color :<br> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGB8</span>.<span class="constructor">Color</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Draw</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> line :<br> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.<span class="constructor">Color</span>.t <span class="keywordsign">-></span> int * int <span class="keywordsign">-></span> int * int <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Motion</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> compute : int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> int * int<br> <span class="keyword">module</span> <span class="constructor">Multi</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> vectors<br> <span class="keyword">val</span> compute :<br> int <span class="keywordsign">-></span><br> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.<span class="constructor">Motion</span>.<span class="constructor">Multi</span>.vectors<br> <span class="keyword">val</span> median_denoise : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.<span class="constructor">Motion</span>.<span class="constructor">Multi</span>.vectors <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> mean : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.<span class="constructor">Motion</span>.<span class="constructor">Multi</span>.vectors <span class="keywordsign">-></span> int * int<br> <span class="keyword">val</span> arrows :<br> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.<span class="constructor">Motion</span>.<span class="constructor">Multi</span>.vectors <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Generic</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">exception</span> <span class="constructor">Not_implemented</span><br> <span class="keyword">module</span> <span class="constructor">Pixel</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> rgb_format = <span class="constructor">RGB24</span> <span class="keywordsign">|</span> <span class="constructor">BGR24</span> <span class="keywordsign">|</span> <span class="constructor">RGB32</span> <span class="keywordsign">|</span> <span class="constructor">BGR32</span> <span class="keywordsign">|</span> <span class="constructor">RGBA32</span><br> <span class="keyword">type</span> yuv_format =<br> <span class="constructor">YUV422</span><br> <span class="keywordsign">|</span> <span class="constructor">YUV444</span><br> <span class="keywordsign">|</span> <span class="constructor">YUV411</span><br> <span class="keywordsign">|</span> <span class="constructor">YUV410</span><br> <span class="keywordsign">|</span> <span class="constructor">YUVJ420</span><br> <span class="keywordsign">|</span> <span class="constructor">YUVJ422</span><br> <span class="keywordsign">|</span> <span class="constructor">YUVJ444</span><br> <span class="keyword">type</span> format =<br> <span class="constructor">RGB</span> <span class="keyword">of</span> <span class="constructor">Image</span>.<span class="constructor">Generic</span>.<span class="constructor">Pixel</span>.rgb_format<br> <span class="keywordsign">|</span> <span class="constructor">YUV</span> <span class="keyword">of</span> <span class="constructor">Image</span>.<span class="constructor">Generic</span>.<span class="constructor">Pixel</span>.yuv_format<br> <span class="keyword">val</span> string_of_format : <span class="constructor">Image</span>.<span class="constructor">Generic</span>.<span class="constructor">Pixel</span>.format <span class="keywordsign">-></span> string<br> <span class="keyword">end</span><br> <span class="keyword">type</span> data =<br> (int, <span class="constructor">Bigarray</span>.int8_unsigned_elt, <span class="constructor">Bigarray</span>.c_layout)<br> <span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t<br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> width : <span class="constructor">Image</span>.<span class="constructor">Generic</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> height : <span class="constructor">Image</span>.<span class="constructor">Generic</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> pixel_format : <span class="constructor">Image</span>.<span class="constructor">Generic</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">Generic</span>.<span class="constructor">Pixel</span>.format<br> <span class="keyword">val</span> make_rgb :<br> <span class="constructor">Image</span>.<span class="constructor">Generic</span>.<span class="constructor">Pixel</span>.rgb_format <span class="keywordsign">-></span><br> ?stride:int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">Generic</span>.data <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">Generic</span>.t<br> <span class="keyword">val</span> rgb_data : <span class="constructor">Image</span>.<span class="constructor">Generic</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">Generic</span>.data * int<br> <span class="keyword">val</span> yuv_data :<br> <span class="constructor">Image</span>.<span class="constructor">Generic</span>.t <span class="keywordsign">-></span><br> (<span class="constructor">Image</span>.<span class="constructor">Generic</span>.data * int) *<br> (<span class="constructor">Image</span>.<span class="constructor">Generic</span>.data * <span class="constructor">Image</span>.<span class="constructor">Generic</span>.data * int)<br> <span class="keyword">val</span> of_RGBA32 : <span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">Generic</span>.t<br> <span class="keyword">val</span> of_YUV420 : <span class="constructor">Image</span>.<span class="constructor">YUV420</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">Generic</span>.t<br> <span class="keyword">val</span> convert :<br> ?copy:bool <span class="keywordsign">-></span><br> ?proportional:bool <span class="keywordsign">-></span><br> ?scale_kind:<span class="constructor">Image</span>.<span class="constructor">RGBA32</span>.<span class="constructor">Scale</span>.kind <span class="keywordsign">-></span><br> <span class="constructor">Image</span>.<span class="constructor">Generic</span>.t <span class="keywordsign">-></span> <span class="constructor">Image</span>.<span class="constructor">Generic</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span></code></body></html>